Skip to content

Releases: cablehead/http-nu

Release v0.9.1

10 Jan 23:26

Choose a tag to compare

v0.9.1

Highlights

  • .mj now supports template inheritance and includes ({% extends %},
    {% include %}, {% import %}). Referenced templates resolve from the
    template's directory and subdirectories.

Raw commits

  • feat: support template inheritance and includes in .mj (2026-01-10)
  • docs: streamline nixos packaging guide (#36) (2026-01-08)

Release v0.9.0

06 Jan 22:33

Choose a tag to compare

v0.9.0

Highlights

  • Breaking: CLI accepts script file directly: The CLI now takes a script file as the main argument. Use -c for inline commands. Example: http-nu :3001 ./serve.nu or http-nu :3001 -c '{|req| "hello"}'
  • Watch mode: New -w/--watch flag enables automatic hot-reload when files change during development
  • Embedded store: New --store flag embeds cross.stream for real-time state and event streaming
  • Windows Unix socket support: Full Unix socket support on Windows
  • Markdown rendering: New .md command converts Markdown to HTML with syntax-highlighted code blocks
  • Module paths: New -I/--include-path flag for module resolution

Raw commits

  • feat: Windows Unix socket support (#35) (2026-01-06)
  • test: verify plugin process is shared across requests (2026-01-04)
  • feat: embed cross.stream store with --store flag (2026-01-03)
  • feat: add -w/--watch flag for file watching and hot reload (2026-01-02)
  • feat!: change CLI to accept script file, -c for inline commands (2026-01-02)
  • chore: format markdown files (2026-01-02)
  • docs: update CSS architecture to prioritize base typography (2026-01-02)
  • fix: add base paragraph spacing (2026-01-02)
  • docs: document javascript: URL injection vector in .md (2026-01-02)
  • feat: add .md command for markdown-to-HTML conversion (2026-01-02)
  • docs: add Datastar-ready branding (2026-01-02)
  • feat: add --include-path/-I flag for module resolution (2026-01-02)
  • feat(www): add Datastar demo, typography system, anchor links (2026-01-02)
  • fix: improve error formatting for streaming responses (2026-01-01)
  • bench: add Flask+gunicorn comparison benchmark (2026-01-01)
  • feat(www): add animated rocket to install section (2026-01-01)
  • refactor: replace indicatif with crossterm, add RequestGuard for abort handling (2026-01-01)
  • docs(www): add --locked to cargo install, add $ prompts (2026-01-01)

Release v0.8.0

01 Jan 06:53

Choose a tag to compare

v0.8.0

Highlights

  • Replaced tracing with custom event system: Removed tracing, tracing-subscriber, and valuable dependencies. New broadcast-based logging with dedicated handler threads sustains 24K+ req/sec. Fixes cargo install without requiring RUSTFLAGS.

Raw commits

  • refactor: replace tracing with broadcast-based event system (2026-01-01)
  • docs: center README header with logo, nav links, and badges (2026-01-01)
  • docs: add tarball verification step to release process (2025-12-31)

Release v0.7.1

31 Dec 22:23

Choose a tag to compare

v0.7.1

Highlights

  • Fix cargo install: Set tracing_unstable cfg flag automatically in build.rs so users no longer need to set RUSTFLAGS manually (thanks @cboecking for reporting)

Raw commits

  • fix: set tracing_unstable cfg flag in build.rs for cargo install (2025-12-31)
  • feat(www): add tabbed install section with copy button and wave divider (2025-12-31)
  • docs: add eval subcommand and homebrew to release notes (2025-12-31)
  • docs: add Homebrew install method and update release process (2025-12-31)

Release v0.7.0

31 Dec 19:51

Choose a tag to compare

v0.7.0

Highlights

  • HTML DSL: Write HTML naturally in Nushell without string concatenation or templates. Includes SVG and MathML elements, automatic XSS escaping, and composable components via Nushell functions
  • Datastar SDK 🚀: Build reactive UIs with server-sent events—all logic stays in Nushell
  • HTTP/2 & Graceful Shutdown: Production-ready with HTTP/2 over TLS and clean shutdown handling
  • Request Logging: Live-updating human-friendly logs (default) or structured JSONL for aggregation. --trust-proxy extracts real client IPs from X-Forwarded-For when behind reverse proxies
  • Routing Module: Organize routes with route and dispatch commands
  • Syntax Highlighting: .highlight command for code blocks with theme support
  • Plugin Support: Load Nushell plugins with --plugin flag
  • Precompiled Templates: .mj compile/render for Jinja2 templates—~200x faster than generating HTML on the fly
  • Eval Subcommand: http-nu eval runs Nushell expressions with http-nu's embedded modules and custom builtin commands available
  • Homebrew: brew install cablehead/tap/http-nu on macOS

Raw commits

  • feat: add Open Graph meta tags and social card image (2025-12-31)
  • docs: README.md (2025-12-31)
  • feat: add landing page (2025-12-31)
  • feat: add SVG and MathML elements to HTML DSL (2025-12-31)
  • feat: add syntax highlighting commands (2025-12-30)
  • docs: add precompiled template capture example (2025-12-30)
  • fix: preserve closure captures when running handler (2025-12-29)
  • feat: add structured logging and trusted proxy support (#34) (2025-12-29)
  • test: improve graceful shutdown test timing tolerance for CI (2025-12-29)
  • ci: free disk space before builds to fix Windows linker OOM (2025-12-29)
  • fix: make --plugin flag global for position-independent usage (2025-12-29)
  • feat: add --plugin flag to load Nushell plugins (#33) (2025-12-29)
  • docs: document {__html} for trusted content in HTML DSL (2025-12-29)
  • fix(examples): wrap P elements in quotes example (2025-12-29)
  • feat(html): HTML element includes DOCTYPE automatically (2025-12-29)
  • docs: add file watch reload example (2025-12-29)
  • chore: format nushell files with topiary (2025-12-27)
  • fix: update examples to use correct HTML DSL syntax (2025-12-27)
  • feat: auto-unwrap {__html} records in response handling (2025-12-26)
  • feat: HTML DSL redesign with XSS protection and Jinja2 integration (2025-12-26)
  • feat: add .mj compile/render commands and eval subcommand (2025-12-26)
  • feat(html): ADD UPPERCASE TAG VARIANTS FOR THE SHOUTY STYLE (2025-12-19)
  • feat(html): style values accept lists for comma-separated CSS (2025-12-19)
  • docs(html): document boolean attributes (2025-12-18)
  • feat(html): support boolean attributes (2025-12-18)
  • fix(html): handle empty args for nushell <0.109 compat (2025-12-18)
  • feat(html): variadic args, class lists, recursive children (2025-12-17)
  • docs(datastar): add mathml to namespace options (2025-12-17)
  • feat(html): allow style attribute to be a record (2025-12-17)
  • refactor(examples): use HTML DSL, unquoted methods, content negotiation (2025-12-16)
  • chore: lint test_html.nu (2025-12-16)
  • feat(html): add +tag append variants for sibling elements (2025-12-16)
  • docs: reorganize README with Reference section and Embedded Modules (2025-12-16)
  • refactor(examples): use append pipelines in datastar-sdk (2025-12-16)
  • refactor(router): stream request body through dispatch to handlers (2025-12-16)
  • feat: add datastar-sdk example and fix from datastar-request API (2025-12-16)
  • docs: simplify quotes example with nushell and posix examples (2025-12-16)
  • refactor(html): use _ prefix and explicit append for siblings (2025-12-16)
  • style: use raw strings in tests and apply nushell formatting (2025-12-15)
  • test: export attrs-to-string and add tests (2025-12-15)
  • docs: document HTTP/2 support in TLS section (2025-12-15)
  • feat: add Datastar SSE SDK module (#31) (2025-12-15)
  • feat: add HTML DSL module (#30) (2025-12-15)
  • feat: add embedded routing module (2025-12-11)
  • feat: add HTTP/2 support and graceful shutdown (2025-12-06)

Release v0.6.0

05 Dec 21:14

Choose a tag to compare

v0.6.0

Highlights

  • Dynamic script updates via stdin - Scripts can now be updated at runtime without restarting the server
  • Minijinja template rendering - New .mj command for rendering minijinja templates
  • Brotli compression - Added brotli compression with streaming support
  • Multi-value headers - Support for multi-value headers using list syntax
  • Nushell 0.109.1 - Updated to the latest Nushell version
http-nu-brotli.mp4

Raw commits

  • chore: add uninlined_format_args lint to CI and check script (2025-12-05)
  • feat: support dynamic script updates via stdin (#29) (2025-12-05)
  • chore: add /release command and streamline CLAUDE.md (2025-12-05)
  • feat: add .mj command for minijinja template rendering (2025-12-05)
  • feat: update nushell to 0.109.1 (2025-12-05)
  • chore: fix line wrapping in README (2025-12-05)
  • feat: add brotli compression with streaming support (#28) (2025-12-04)
  • docs: add NixOS packaging documentation (#26) (2025-12-03)
  • feat: support multi-value headers with list syntax (2025-11-24)
  • fix: print parse errors with proper ANSI formatting (2025-11-24)

Release v0.5.1

07 Nov 19:30

Choose a tag to compare

v0.5.1

Highlights

  • Fixed HTTPS support in Nushell commands: Commands like http get https://... now work correctly within http-nu handlers by initializing nu_command's TLS crypto provider

Raw commits

  • fix: initialize nu_command crypto provider for https support (2025-11-07)
  • chore: update Cargo.lock to resolve dependency conflicts (2025-10-15)

Release v0.5.0

16 Oct 00:07

Choose a tag to compare

v0.5.0

  • feat: update nushell dependencies to 0.108 (2025-10-15)

Release v0.4.6

21 Aug 04:15

Choose a tag to compare

v0.4.6

Highlights

  • Query Parameter Manipulation: Added query config option to .reverse-proxy command allowing complete replacement of query parameters using Nu record syntax. Supports standard Nu operations like upsert, reject, and default for flexible parameter control.

Raw commits

  • feat: add query parameter manipulation to .reverse-proxy (2025-08-21)
  • docs: standardize CLAUDE.md with mcp-server-nu style (2025-08-12)
  • Update CLAUDE.md (2025-08-09)
  • chore: update Cargo.lock (2025-07-30)
  • docs: add release creation process to CLAUDE.md (2025-07-30)

Release v0.4.5

30 Jul 16:47

Choose a tag to compare

v0.4.5

Highlights

  • New .reverse-proxy command: Full HTTP reverse proxy functionality with header customization, path stripping, and streaming support
  • SPA support for .static: Added --fallback option to serve index.html for single page applications
  • Upgraded to Nushell 0.106.1: Latest Nushell features and improvements
  • Improved error handling: Better error messages and robustness for malformed requests
  • TLS fixes: Resolved TLS connection issues for secure HTTPS serving
  • Architecture improvements: Removed axum dependency, consolidated socket handling, and improved performance

Raw commits

  • chore: bump version to 0.4.4-dev.10 (2025-07-30)
  • format: README (2025-07-30)
  • feat: update nushell dependencies to 0.106.1 (2025-07-30)
  • test: allow dead code in test utility methods (2025-07-30)
  • fix: improve error handling (#23) (2025-07-09)
  • Update README.md (2025-07-06)
  • Update README.md (2025-07-06)
  • chore: bump version to 0.4.4-dev.8 (2025-07-05)
  • feat: add a --fallback option to .static to support SPAs (#22) (2025-07-04)
  • fix(ci): populate change log, if empty on release tag push (#18) (2025-07-01)
  • fix: .reverse-proxy streams the backend's response body (#20) (2025-07-01)
  • refactor: remove axum dependency, consolidate unix socket, tcp and tls handling (#19) (2025-07-01)
  • Update README.md (2025-06-30)
  • Update README.md (2025-06-30)
  • feat(server): add .reverse-proxy command and graceful shutdown, migrate to tower services (via axum) (#15) (2025-06-30)
  • fix: tls support (#13) (2025-06-27)
  • docs(README): install with eget (2025-06-25)