djust 0.1.7

StableReleased
Install
pip install djust==0.1.7

Added

  • Tag Handler Registry: Extensible system for custom Django template tags in Rust. Register Python callbacks for tags like {% url %} and {% static %} with ~100-500ns overhead per call. Built-in tags (if, for, block) remain zero-overhead native Rust. Includes ADR documenting architecture decisions. (#65)
  • Comparison Operators: Template conditions now support >, <, >=, <= operators in addition to == and !=. (#65)
  • Enhanced {% include %} Tag: Full support for with clause (pass variables) and only keyword (isolate context). (#65)
  • Performance Testing Infrastructure: Comprehensive benchmarking with Criterion (Rust) and pytest-benchmark (Python). New Makefile commands: make benchmark, make benchmark-quick, make benchmark-e2e. Enables tracking performance across releases and detecting regressions. (#69)
  • Inline Handler Arguments: Event handlers now support function-call syntax with arguments directly in the template attribute. Use dj-click="handler('arg')" instead of dj-click="handler" data-value="arg". Supports strings, numbers, booleans, null, and multiple arguments. (#67)

Fixed

  • Async Event Handlers: WebSocket consumer now properly supports async def event handlers. Previously only synchronous handlers worked correctly. (#63)

Performance

  • Dashboard render: ~37µs (27,000 renders/sec)
  • Tag handler overhead: ~100-500ns per call
  • Template variable substitution: ~970ns
  • 50-row data table: ~188µs

All releases · Atom feed