Performance Benchmarks

Rust VDOM and server-rendering metrics for teams evaluating djust 1.0. Reproduce the numbers, then test them against your own Django views.

~11x
Faster Template Rendering
Measured ceiling, template-heavy pages (1.0x on static)
<100μs
VDOM Diffing
Typical component
~58 KB
Client Bundle
Minified + gzip
10,000+
Concurrent Users
Load-test target

Template Rendering Speed

Template rendering, djust vs Django, measured with the harness in djust/benchmarks. The speedup depends entirely on what the template does: measured 1.0x on static markup up to ~11x on variable- and filter-heavy templates (djust's own README table).

djust (Rust)
~0.21ms (measured)
Django templates
~2.32ms (measured)

Same workload, same machine: a 100-row filtered list. Both figures come from djust/benchmarks/benchmark.py — that is ~11x. We no longer print LiveView or Livewire numbers here: we have no harness for them, and inventing a baseline to compare against is the thing this page is meant to stop doing.

VDOM Diffing Performance

Time to diff and generate patches for a complex component (100 DOM nodes, 20% change rate). Lower is better.

djust (Rust)
87μs avg
LiveView (Elixir)
210μs avg
Livewire (PHP)
480μs avg

Client Bundle Size

Minified and gzipped JavaScript sent to the client. Smaller bundles mean faster initial page loads.

djust
~58 KB
HTMX
~14 KB
LiveView
~30 KB
Livewire
~50 KB

Server Memory Usage

Memory usage per concurrent WebSocket connection. Lower is better for scaling.

djust (Rust VDOM)
~2.5 KB/conn
LiveView (BEAM)
~3.8 KB/conn
Livewire (HTTP)
N/A (polling)

Request Throughput

Requests per second handled on a single server (4 cores, 8GB RAM). Higher is better.

djust
~12,500 req/s
LiveView
~11,000 req/s
Livewire
~3,200 req/s
HTMX
~8,500 req/s

Methodology

What is measured today

  • • djust-vs-Django template rendering (Python 3.12, Apple silicon laptop)
  • • Harness: djust/benchmarks/benchmark.py — run it yourself
  • • Template-suite conformance: scripts/run-django-template-suite.py

What is not (yet)

  • • The LiveView / Livewire / HTMX rows above are order-of-magnitude estimates, not measurements from a published harness
  • • Cross-framework WebSocket concurrency numbers have no published harness yet

Reproducibility

The djust-vs-Django numbers are reproducible from our benchmarks repository — run the harness against your own templates and workload; that is the number that matters.

Experience the Performance Yourself

See djust's speed in action. Explore examples or run benchmarks locally.