djust 0.1.6

StableSecurityReleased
Install
pip install djust==0.1.6

Added

  • {% url %} Tag Support: Django's {% url %} template tag is now fully supported with automatic Python-side URL resolution. Supports named URLs, namespaced URLs, and positional/keyword arguments. (#55)

  • {% include %} Tag Support: Fixed template include functionality by passing template directories to the Rust engine. Included templates are now correctly resolved from configured template paths. (#55)

  • urlencode Filter: Added the urlencode filter for URL-safe encoding of strings. Supports encoding all characters or preserving safe characters. (#55)

  • Comparison Operators in {% if %} Tags: Added support for >, <, >=, <= comparison operators in conditional expressions. (#55)

  • Auto-serialization for Django Types: Context variables with Django types (datetime, date, time, Decimal, UUID, FieldFile) are now automatically serialized for Rust rendering. No manual JSON conversion required. (#55)

  • Lazy Hydration: LiveView elements can now defer WebSocket connections until they enter the viewport or receive user interaction. Use dj-lazy attribute with modes: viewport (default), click, hover, or idle. Reduces memory usage by 20-40% per page for below-fold content. (#54)

  • TurboNav Integration: LiveView now works seamlessly with Turbo-style client-side navigation. WebSocket connections are properly disconnected on navigation and reinitialized when returning to a page. (#54)

    See docs/guides/turbonav-integration.md.

Changed

  • AST Optimization: Template parser now merges adjacent Text nodes during AST optimization, reducing allocations and improving render time by 5-15%. Comment nodes are also removed during optimization as they produce no output. (#54)

Fixed

  • Nested Block Inheritance: Fixed template inheritance for nested blocks (e.g., docs_content inside content). Block overrides are now recursively applied to merged content, ensuring deeply nested blocks are correctly resolved. (#57)
  • Form Validation First-Click Issue: Added parse_html_continue() function to maintain ID counter continuity across parsing operations. Prevents ID collisions when inserting dynamically generated elements (like validation error messages) that caused first-click validation issues. (#54)
  • Whitespace Preservation: Whitespace is now preserved inside <pre>, <code>, <textarea>, <script>, and <style> elements during both Rust parsing and client-side DOM patching. (#54)

Security

  • pyo3 Upgrade: Upgraded pyo3 from 0.22 to 0.24 to address RUSTSEC-2025-0020 (buffer overflow vulnerability in PyString::from_object). (#55)

All releases · Atom feed