{"slug": "arcis-open-source-security-middleware-for-node-python-and-go", "title": "Arcis – open-source security middleware for Node, Python, and Go", "summary": "Gagan, a Master's student at Northeastern University, released Arcis, an open-source security middleware for Node, Python, and Go that blocks 34 attack vectors inside web applications. The middleware, built over eleven weeks, provides a unified API across three SDKs with zero runtime dependencies in Node and Python, and includes CLI tools for SAST, dynamic testing, and supply-chain scanning. Arcis runs inside the application to enforce per-route rules and framework-aware checks that traditional WAFs cannot perform.", "body_md": "Open-source security middleware for Node, Python, and Go. Same API across three SDKs. Zero runtime deps in Node and Python, stdlib-only core in Go. MIT licensed. Built by one person over eleven weeks. This post is the introduction.\n\n## What it is\n\nArcis is a security layer that runs inside your web application, alongside your handler. Drop it into your Express, Fastify, FastAPI, Django, Gin, Echo, or one of fourteen other framework adapters, and it blocks more than 30 attack vectors at the request boundary before they reach your code.\n\n```\n# Node\nnpm install @arcis/node\n\n# Python\npip install arcis\n\n# Go\ngo get github.com/GagancM/arcis\n```\n\nIn your server:\n\n``` js\nimport { arcis } from '@arcis/node';\napp.use(arcis({ block: true }));\n```\n\nThat's it. XSS, SQL injection, NoSQL operators, path traversal, command injection, SSTI, XXE, SSRF (including DNS rebinding), prototype pollution, CSRF, mass assignment, prompt injection, agent toolcall injection — all blocked by default.\n\n## What it actually does\n\n**34 attack vectors** detected and blocked.[Full list in the docs](../../documentation/attack-vectors.html).**Three SDKs at full parity.** The Python SDK isn't a port — it's a peer. Same tests, same input vectors, same output behavior.**Zero runtime deps** in Node and Python. Go core is stdlib-only with optional Gin/Echo adapters.**3,500+ tests** across the three SDKs. Cross-SDK conformance harness enforces identical behavior on every commit.**Three CLI tools in one Rust binary.**`arcis audit`\n\nfor SAST,`arcis scan`\n\nfor dynamic endpoint testing,`arcis sca`\n\nfor supply-chain. Sub-second on most repos.**Self-hosted control plane**(Fastify + SQLite) for telemetry, plus a dashboard. No cloud required.**@arcis/mcp on npm.** First MCP server in this category. Exposes Arcis as four tools any agent can call.\n\n## The inside-the-app argument\n\nMost web apps in 2026 sit behind a WAF — Cloudflare, AWS WAF, NGINX with ModSecurity. WAFs work, but they sit at the network edge and see only raw HTTP bytes. By the time the request reaches your handler, the bytes have been parsed into JSON, normalized, type-coerced. The WAF and your handler see the same request differently. Modern bypasses live in that seam.\n\nArcis runs inside your application. It has access to the parsed request, the framework's route context, the user's session. That makes it possible to enforce per-route rules, per-field validation, framework-aware checks — things a WAF cannot do because it doesn't know which JSON field is your privileged `isAdmin`\n\nflag.\n\nThis is the argument behind Aikido Zen and Arcjet too. Same category, different shapes.\n\n## What it does NOT do\n\nHonest limits, before you ask:\n\n**Not a WAF replacement.** A WAF still drops obvious garbage at the edge. Run both. Arcis is the second layer.**Not RASP.** We don't hook into the language runtime or instrument`pg.query`\n\n. The protection sits at the request boundary, not at every function call.**Not authentication.** Arcis protects auth flows (CSRF tokens, secure cookies, signup brute-force) but doesn't implement auth itself.**Not a parameterized-query substitute.** SQL sanitization is defense in depth. Parameterized queries are still the real fix.**Detection is signature-based.** NFKC normalization + multi-decode + mutation tester closes a lot of bypass classes, but it's not parser-based. If an attacker writes a payload that doesn't match any pattern, the request goes through.\n\n## Built by one person\n\nI'm Gagan, a Master's student at Northeastern University. I started Arcis in late March 2026 and have been building nights and weekends alongside my degree. Eleven weeks in:\n\n- 3 SDKs across Node, Python, Go\n- 17 framework adapters\n- 3,500+ tests, all cross-SDK enforced\n- 34 attack vectors\n- 3 CLI tools in a single Rust binary\n- @arcis/mcp MCP server (first publish 2026-05-24)\n- 7 runnable example repos under\n`github.com/getarcis/`\n\n- The self-hosted dashboard\n- This website\n\nTwelve releases (v1.0 through v1.6.3). Two pilot deployments. Zero paying customers yet — the open-source core is free forever, the hosted Cloud version is in development for design partners.\n\nI graduate August 2026 and will be full-time on Arcis from then. If accepted by YC, relocating to SF for the batch.\n\n## Try it\n\n```\nnpm install @arcis/node\n# or\npip install arcis\n# or\ngo get github.com/GagancM/arcis\n```\n\n[Getting started](../../documentation/getting-started.html)[Attack vectors covered](../../documentation/attack-vectors.html)[Comparison vs Arcjet](../../documentation/comparisons/vs-arcjet.html)·[vs Aikido Zen](../../documentation/comparisons/vs-aikido.html)·[vs Snyk](../../documentation/comparisons/vs-snyk.html)[Source on GitHub](https://github.com/Gagancm/arcis)\n\nIf you're building something AI-heavy, the [agent toolcall defense piece](./defending-agent-tool-calls.html) is the most interesting starting point. `@arcis/mcp`\n\nis on npm, and `getarcis/arcis-example-mcp`\n\nis a runnable demo that fires seven prompt-injection payloads at the MCP server on every CI run and fails the build if any get through.\n\nHappy to answer questions about the runtime layer argument, the cross-SDK parity work, the agent-security wedge, or anything else under the hood.", "url": "https://wpnews.pro/news/arcis-open-source-security-middleware-for-node-python-and-go", "canonical_source": "https://arcis-website.pages.dev/blog/posts/introducing-arcis", "published_at": "2026-05-28 23:56:34+00:00", "updated_at": "2026-05-29 00:15:27.452278+00:00", "lang": "en", "topics": ["ai-tools", "ai-infrastructure", "ai-safety"], "entities": ["Arcis", "Node", "Python", "Go", "Express", "Fastify", "FastAPI", "Django"], "alternates": {"html": "https://wpnews.pro/news/arcis-open-source-security-middleware-for-node-python-and-go", "markdown": "https://wpnews.pro/news/arcis-open-source-security-middleware-for-node-python-and-go.md", "text": "https://wpnews.pro/news/arcis-open-source-security-middleware-for-node-python-and-go.txt", "jsonld": "https://wpnews.pro/news/arcis-open-source-security-middleware-for-node-python-and-go.jsonld"}}