Show HN: Python file streaming 237MB/s on $8/M droplet in 507 lines of stdlib
Hacker News (score: 13)Description
- PyPI: https://pypi.org/project/axon-api/
- GitHub: https://github.com/b-is-for-build/axon-api
- Deployment Script: https://github.com/b-is-for-build/axon-api/blob/master/examp...
Axon is a 507-line, pure Python WSGI framework that achieves up to 237MB/s file streaming on $8/month hardware. The key feature is the dynamic bundling of multiple files into a single multipart stream while maintaining bounded memory (<225MB). The implementation saturates CPU before reaching I/O limits.
Technical highlights:
- Pure Python stdlib implementation (no external dependencies)
- HTTP range support for partial content delivery
- Generator-based streaming with constant memory usage
- Request batching via query parameters
- Match statement-based routing (eliminates traversal and probing)
- Built-in sanitization and structured logging
The benchmarking methodology uses fresh Digital Ocean droplets with reproducible wrk tests across different file sizes. All code and deployment scripts are included.
More from Hacker
Building a WASM compiler in Roc (series)
Building a WASM compiler in Roc (series)
Just use `git` to manage your dotfiles
Just use `git` to manage your dotfiles
Show HN: Grammit – Local-only AI grammar checker (Chrome extension)
Show HN: Grammit – Local-only AI grammar checker (Chrome extension) Hey HN, I wanted a grammar checker that didn’t send my writing to someone's servers, so we built Grammit, a Chrome extension that runs grammar checks locally using an LLM. Your text never leaves your computer during checking.<p>Here’s a 2-minute overview: <a href="https://www.loom.com/share/baf501ee6cf14a919a7384128246ed67" rel="nofollow">https://www.loom.com/share/baf501ee6cf14a919a7384128246ed67</a><p>Because it uses an LLM, it catches more than spelling and grammar. For example, it can correct some wrong statements like “The first US president was Benjamin Franklin.”<p>Grammit also includes an in-page writing assistant that can rephrase or draft new text. It also uses the local LLM.<p>We used many new web features to build this, such as:<p>- Chrome’s new Prompt API to talk to the local model.<p>- Anchor Positioning API to place the UI with minimal impact on the DOM.<p>- CSS Custom Highlights API for inline error marking.<p>- The new CSS sign() function to create CSS-driven layout with discontinuities.<p>Part of the fun of being early adopters of bleeding edge tech is we’re discovering new Chrome bugs (e.g., <a href="https://issues.chromium.org/issues/428354426" rel="nofollow">https://issues.chromium.org/issues/428354426</a>, <a href="https://issues.chromium.org/issues/428039224" rel="nofollow">https://issues.chromium.org/issues/428039224</a>).<p>I’d love your feedback on:<p>- Where the UX feels rough<p>- What do you think of the corrections and suggestions<p>Happy to answer questions about the tech or the Prompt API. Thanks for trying it out!<p>Chrome Web Store extension link: <a href="https://chromewebstore.google.com/detail/grammit-the-ai-grammar-ch/pkfmoknmnkbidlniedaloiijibdpjjmm" rel="nofollow">https://chromewebstore.google.com/detail/grammit-the-ai-gram...</a>
Debugging a mysterious HTTP streaming issue
Debugging a mysterious HTTP streaming issue
Show HN: Sidequest.js – Background jobs for Node.js using your database
Show HN: Sidequest.js – Background jobs for Node.js using your database Hey HN,<p>I'm the maintainer of node-cron (5M+ downloads/month), and I recently built Sidequest.js, a background job runner for Node.js inspired by Oban (Elixir) and Sidekiq (Rails).<p>It solves some common problems I saw with libraries like node-cron:<p>- Jobs don’t block your API: they run in isolated worker threads<p>- No Redis or vendor lock-in: use Postgres, MySQL, SQLite, or MongoDB<p>- Supports retries, uniqueness, concurrency, snoozing, prioritization<p>- Comes with a CLI and a simple dashboard<p>- Works great in monoliths and doesn’t require extra infra<p>Quick start (no signup needed): <a href="https://docs.sidequestjs.com/quick-start" rel="nofollow">https://docs.sidequestjs.com/quick-start</a><p>GitHub: <a href="https://github.com/sidequestjs/sidequest" rel="nofollow">https://github.com/sidequestjs/sidequest</a><p>Would love feedback or feature suggestions. Happy to answer any questions here!
Termagotchi – A terminal-based Tamagotchi simulation written in Go
Termagotchi – A terminal-based Tamagotchi simulation written in Go
Show HN: Gmap: Explore Git Repos Visually from the CLI
Show HN: Gmap: Explore Git Repos Visually from the CLI I built gmap, a command-line tool to visualize Git activity, weekly heatmaps, file churn, authorship stats, and more, right from your terminal.<p>Install with: cargo install gmap<p>Or on Arch via AUR: yay -S gmap<p>Repo: <a href="https://github.com/seeyebe/gmap">https://github.com/seeyebe/gmap</a><p>Feedback is welcome. Contributions too. if you’re into Git internals, CLIs, or terminal UX.
Show HN: ELF Injector
Show HN: ELF Injector The ELF Injector allows you to "inject" arbitrary-sized relocatable code chunks into ELF executables. The code chunks will run before the original entry point of the executable runs.<p>Included in the project are sample chunks as well as a step-by-step tutorial on how it works.<p>It's a mix of C and assembly and currently runs on 32-bit ARM though it's easy to port to other architectures.
GitWrist – Allows WearOS devices to interact with the GitHub API
GitWrist – Allows WearOS devices to interact with the GitHub API
Show HN: Tinykv – Minimal file-backed key-value store for Rust
Show HN: Tinykv – Minimal file-backed key-value store for Rust I built tinykv because I kept reaching for simple persistent storage in Rust projects but found existing solutions either too complex (sled) or unmaintained (pickledb).<p>tinykv focuses on simplicity: JSON-based, serde-powered, with optional TTL. Perfect for CLI tools, game saves, config storage.<p>Would appreciate any feedback from the HN community!
Show HN: SmartStepper – Multi-Step Form Library with Config-Based Flow
Show HN: SmartStepper – Multi-Step Form Library with Config-Based Flow I just released SmartStepper v2 – a declarative and config-based way to handle multi-step forms in React.<p>It lets you define orchestration (next, previous steps), validation, and views via a single config object. No more if/else spaghetti or scattered state.<p>GitHub: <a href="https://github.com/Miladxsar23/smartstepper">https://github.com/Miladxsar23/smartstepper</a> Demo: <a href="https://smartstepper-demo.vercel.app" rel="nofollow">https://smartstepper-demo.vercel.app</a> Docs: <a href="https://github.com/Miladxsar23/smartstepper#readme">https://github.com/Miladxsar23/smartstepper#readme</a><p>Would love feedback, suggestions, or examples if anyone tries it!
No other tools from this source yet.