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 forwithclause (pass variables) andonlykeyword (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 ofdj-click="handler" data-value="arg". Supports strings, numbers, booleans, null, and multiple arguments. (#67)
Fixed
- Async Event Handlers: WebSocket consumer now properly supports
async defevent 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