Neon Law
  • Notations
  • Nimbus
  • Workshops
  • Show-and-tell
  • Sign in
← Rust in Peace

Rust All the Way Down

Chapter 6 of 7 · Section 44 of 51

Sections

1. Intro

  • 1. Agenda
  • 2. Las Vegas, 2011 — where I learned to program

2. The Rails Lesson

  • 3. Convention over configuration
  • 4. The database was a shared design
  • 5. Controllers — where a request becomes a decision
  • 6. Parameter handling — the shape of what comes in
  • 7. Middleware — the layer I didn't know I needed
  • 8. "It works on my machine"
  • 9. How new all of this still was
  • 10. From Rails conventions to Navigator
  • 11. A eulogy for my programming career

3. Shared craft compounds

  • 12. Keep domain seams in Rust, where interest compounds
  • 13. Widely available — governed in the open
  • 14. A cautionary tale — Java, Oracle, and the price of a single owner
  • 15. Say it with your whole chest

4. Six ways to know a change holds

  • 16. One giant change deserves more than one glance
  • 17. The compiler asks whether the program can be true
  • 18. Clippy and rustfmt ask whether the code speaks our dialect
  • 19. Tests ask whether the promise still holds at the boundary
  • 20. Bloom turns verification into a learning loop
  • 21. Marketing copy must explain the way, not only the claim
  • 22. Three workshops, three people, one method
  • 23. Fast generation, slow enough verification

5. From Law to Workflow

  • 24. The goal — deterministic workflows from law
  • 25. Step 1 — read the law
  • 26. Step 2 — write the behavior before the code
  • 27. "It works on my machine" — so we stopped trusting my machine
  • 28. Step 3 — the template: a questionnaire and a workflow
  • 29. Step 4 — the attorney gate is a graph invariant
  • 30. Step 5 — signature is a modular step
  • 31. Step 6 — the filing, run durably
  • 32. "It works on my machine" — even when my machine dies
  • 33. Why a workflow beats a prompt
  • 34. Privacy-preserving operations are part of the product

6. Rust All the Way Down

  • 35. We did not start all Rust
  • 36. From Postgres to Rust — with a bridge
  • 37. The runtime story: keep the seam, change the engine
  • 38. One deployment bucket; many matter repositories
  • 39. Rust where we can own the path; partners at the edge
  • 40. Rust reaches the places lawyers work
  • 41. I want a commercial relationship with everything I depend on
  • 42. Always the latest, always Rust
  • 43. Swap the seam — it still works
  • 44. The crates we actually run on
  • 45. Ethics is part of the stack
  • 46. The simplest developer environment I can get away with
  • 47. The online developer environment
  • 48. "It works on my machine in the cloud — and on yours, and on my client's"
  • 49. Where we are today — live by August 19
  • 50. Betting on ourselves — Rust in peace

7. Wrap Up

  • 51. Take the method home
✓

The crates we actually run on

The bill of materials for a real legal-tech product — every line a crate you can pull today:

  • HTTP and views — axum, dioxus, tower / tower-http.
  • Async runtime — tokio, multi-threaded, with graceful shutdown.
  • Database transition — Postgres today; SurrealDB follows through the next store slices.
  • Durable execution — restate-sdk.
  • Telemetry — opentelemetry, tracing, OTLP.
  • Archive — arrow and parquet; a real Iceberg table lane is separately tracked.
  • Content — pulldown-cmark.
  • Cloud — google-cloud-storage + reqwest.
  • Identity — jsonwebtoken + oauth2.
  • Tests — fantoccini and cucumber, exercised through the workspace harness.

Presenter notes

So you can map this onto your own stack: for HTTP and views, axum for the router and handlers, dioxus for the browser surface, tower / tower-http for the middleware stack. The async runtime is tokio, multi-threaded, with signal handling for graceful shutdown. The database is Postgres today, with a SurrealDB store transition in progress. Durable execution is restate-sdk hosting every workflow on one worker endpoint, with the journal doing the remembering. Telemetry is opentelemetry and tracing, with OTLP as the export seam. The archive uses Arrow and Parquet. The real Iceberg-table and restore drill work is tracked separately, so the slide does not turn a plan into a fact. Content is rendered from the Markdown you read. Cloud is google-cloud-storage behind a storage trait, with reqwest for the REST plumbing that provisions a fresh project. Identity is jsonwebtoken and oauth2 for the OIDC flow. Tests use fantoccini to drive a real browser over WebDriver, and cucumber for the behavior specs you saw in Step 2. One workspace, one cargo test, one language from the HTTP handler down to the migration and back up to the browser assertion. None of these crates asked us to sign anything.

View all slidesOpen display
← PreviousNext →
Contact us — support@neonlaw.orgTransparency & public disclosures
  • Neon Law Foundation
    5150 Mae Anne Ave Ste 405-9999, Reno, NV 89523

Neon Law Foundation is a Nevada nonprofit corporation and a 501(c)(3) tax-exempt organization. It does not practice law and cannot represent you.

Nothing on this site is legal advice, and nothing here creates an attorney-client relationship.

© 2026 Polin Shook & Neon Law