Show HN: Zs3 – S3 server in ~1K lines of Zig, 250KB binary, zero dependencies

Show HN (score: 6)
Found: December 29, 2025
ID: 2836

Description

Other
Show HN: Zs3 – S3 server in ~1K lines of Zig, 250KB binary, zero dependencies Most S3 usage is PUT, GET, DELETE, LIST with basic auth. This does exactly that.

SigV4 auth, multipart uploads, range requests. Storage is just files on disk.

No versioning, no ACLs, no encryption. Use MinIO or AWS if you need those.

More from Show

Show HN: Agent MCP Studio – build multi-agent MCP systems in a browser tab

Show HN: Agent MCP Studio – build multi-agent MCP systems in a browser tab I built a browser-only studio for designing and orchestrating MCP agent systems for development and experimental purposes. The whole stack — tool authoring, multi-agent orchestration, RAG, code execution — runs from a single static HTML file via WebAssembly. No backend.<p>The bet: WASM is a hard sandbox for free. When you generate tools with an LLM (or write them by hand), the studio AST-validates the source, registers it lazily, and JIT-compiles into Pyodide on first call. SQL tools run in DuckDB-WASM in a Web Worker. The built-in RAG uses Xenova&#x2F;all-MiniLM-L6-v2 via Transformers.js for on-device embeddings. Nothing leaves the browser; close the tab and the stack is gone. The WASM boundary is what makes it safe to execute LLM-generated code locally — no Docker, no per-tenant container, no server.<p>Above the tool layer sits an agentic system with 10 orchestration strategies:<p>- Supervisor (router → 1 expert) - Mixture of Experts (parallel + synthesizer) - Sequential Pipeline - Plan &amp; Execute (planner decomposes, workers execute) - Swarm (peer handoffs) - Debate (contestants + judge) - Reflection (actor + critic loop) - Hierarchical (manager delegates via ask_&lt;persona&gt; tools) - Round-Robin (panel + moderator) - Map-Reduce (splitter → parallel → aggregator)<p>You build a team visually: drag tool chips onto persona nodes on a service graph, pick a strategy, and the topology reshapes to match. Each persona auto-registers as an MCP tool (ask_&lt;name&gt;), plus an agent_chat(query, strategy?) meta tool. A bundled Node bridge speaks stdio to Claude Desktop and WebSocket to your tab — your browser becomes an MCP server.<p>When you&#x27;re done, Export gives you a real Python MCP server: server.py, agentic.py, tools&#x2F;*.py, Dockerfile, requirements.txt, .env.example. The exported agentic.py is a faithful Python port of the same orchestration logic running in the browser, so the deployable artifact behaves identically to the prototype.<p>Also shipped: Project Packs. Export the whole project as a single .agentpack.json. Auto-detects required external services (OpenAI, GitHub, Stripe, Anthropic, Slack, Notion, Linear, etc.) by scanning tool source for os.environ.get(...) and cross-referencing against the network allowlist. Recipients get an import wizard that prompts for credentials. Manifests are reviewable, sharable, and never carry secrets.<p>Some things I&#x27;m honestly uncertain about:<p>- 10 strategies might be too many. My guess is most users only need Supervisor, Mixture of Experts, and Debate. Open to data on which ones actually pull weight. - Browser cold-starts (Pyodide warm-up on first load) are a real UX hit despite aggressive caching. - bridge.js is the only non-browser piece. A hosted variant is the obvious next step.<p>Built with Pyodide, DuckDB-WASM, Transformers.js, OpenAI Chat Completions (or a local Qwen 1.5 0.5B running in-browser via Transformers for fully offline mode). ~5K lines of HTML&#x2F;CSS&#x2F;JS in one file.<p><a href="https:&#x2F;&#x2F;www.agentmcp.studio" rel="nofollow">https:&#x2F;&#x2F;www.agentmcp.studio</a><p>Genuinely curious whether running this much LLM-generated code in a browser tab feels reasonable to you, or quietly terrifying.

No other tools from this source yet.