<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Edgar Misaél Cano Domínguez</title>
    <description>The latest articles on DEV Community by Edgar Misaél Cano Domínguez (@edgar_misalcanodomngu).</description>
    <link>https://dev.to/edgar_misalcanodomngu</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3985919%2Fab848a55-5424-494b-85b9-ac75a93b1278.png</url>
      <title>DEV Community: Edgar Misaél Cano Domínguez</title>
      <link>https://dev.to/edgar_misalcanodomngu</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/edgar_misalcanodomngu"/>
    <language>en</language>
    <item>
      <title>I built a JS/TS runtime in Rust where nothing runs without your permission</title>
      <dc:creator>Edgar Misaél Cano Domínguez</dc:creator>
      <pubDate>Mon, 15 Jun 2026 16:39:42 +0000</pubDate>
      <link>https://dev.to/edgar_misalcanodomngu/i-built-a-jsts-runtime-in-rust-where-nothing-runs-without-your-permission-4efp</link>
      <guid>https://dev.to/edgar_misalcanodomngu/i-built-a-jsts-runtime-in-rust-where-nothing-runs-without-your-permission-4efp</guid>
      <description>&lt;p&gt;Last week I shipped v2.0.2 of &lt;a href="https://github.com/OdinoCano/3va" rel="noopener noreferrer"&gt;3va&lt;/a&gt; — a JavaScript and TypeScript runtime written in Rust. Here is why I built it and what makes it different from Node.js, Bun, and Deno.&lt;/p&gt;




&lt;h2&gt;
  
  
  The problem
&lt;/h2&gt;

&lt;p&gt;In 2024, the &lt;code&gt;xz&lt;/code&gt; backdoor was hidden inside a postinstall script. The &lt;code&gt;event-stream&lt;/code&gt; attack in 2018 targeted a specific Bitcoin wallet by injecting code at install time. The &lt;code&gt;node-ipc&lt;/code&gt; protest-ware in 2022 deleted files on machines with Russian or Belarusian IP addresses.&lt;/p&gt;

&lt;p&gt;All three attacks had the same root cause: &lt;strong&gt;the runtime trusted the package&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;npm, pnpm, Yarn, and Bun all execute postinstall scripts by default. Some let you opt out. None of them block it unconditionally at the runtime level — because that would require the runtime to enforce permissions, and none of them do.&lt;/p&gt;

&lt;p&gt;3va does.&lt;/p&gt;




&lt;h2&gt;
  
  
  How it works
&lt;/h2&gt;

&lt;p&gt;Every capability is blocked by default. The filesystem, network, environment variables, child processes, and native addons are all hard-blocked unless you explicitly grant them:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# This runs. It cannot read files, open sockets, or spawn processes.&lt;/span&gt;
3va run app.ts

&lt;span class="c"&gt;# This can read /app/config and talk to api.stripe.com. Nothing else.&lt;/span&gt;
3va run app.ts &lt;span class="nt"&gt;--allow-read&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;/app/config &lt;span class="nt"&gt;--allow-net&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;api.stripe.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Permissions apply uniformly to your code &lt;strong&gt;and every dependency it loads&lt;/strong&gt;. There is no trusted/untrusted boundary that a package can cross.&lt;/p&gt;

&lt;p&gt;Post-install scripts are blocked unconditionally. Not as a flag. Not as a config option. The package manager simply does not execute them. Ever.&lt;/p&gt;




&lt;h2&gt;
  
  
  Drop-in replacement — same ecosystem, same frameworks
&lt;/h2&gt;

&lt;p&gt;This is the part that surprised most people I showed it to.&lt;/p&gt;

&lt;p&gt;3va installs from the same registries you already use:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;3va &lt;span class="nb"&gt;install &lt;/span&gt;express          &lt;span class="c"&gt;# from npmjs.org&lt;/span&gt;
3va &lt;span class="nb"&gt;install &lt;/span&gt;react@18         &lt;span class="c"&gt;# specific version&lt;/span&gt;
3va &lt;span class="nb"&gt;install&lt;/span&gt; @std/path &lt;span class="nt"&gt;--allow-net&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;jsr.io  &lt;span class="c"&gt;# from JSR&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It runs the same frameworks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend&lt;/strong&gt;: Next.js, Astro, Nuxt, SvelteKit, Remix, Gatsby, SolidStart, Qwik&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend&lt;/strong&gt;: Express, Fastify, Koa, NestJS&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mobile&lt;/strong&gt;: React Native&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No migration. No adapter layer. You add a &lt;code&gt;"3va"&lt;/code&gt; key to your existing &lt;code&gt;package.json&lt;/code&gt; to declare permissions — a pattern Node.js, Bun, pnpm, and Yarn all ignore safely, just like &lt;code&gt;"jest"&lt;/code&gt; or &lt;code&gt;"eslint"&lt;/code&gt; config.&lt;/p&gt;




&lt;h2&gt;
  
  
  No pm2
&lt;/h2&gt;

&lt;p&gt;3va ships with a process manager built into the runtime:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;3va start server.js &lt;span class="nt"&gt;--name&lt;/span&gt; api
3va status
3va logs api &lt;span class="nt"&gt;--lines&lt;/span&gt; 200
3va restart api
3va stop api        &lt;span class="c"&gt;# SIGTERM → SIGKILL after 1.5s&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Auto-restart on crash is on by default. Process state survives reboots. No separate daemon, no extra install.&lt;/p&gt;




&lt;h2&gt;
  
  
  DDoS protection built in
&lt;/h2&gt;

&lt;p&gt;The HTTP layer enforces a hard connection limit of 1,024 concurrent connections and includes Slowloris mitigation out of the box. Node.js and Bun have neither.&lt;/p&gt;

&lt;p&gt;This is intentional behavior — 3va drops excess connections rather than queuing them indefinitely. In a stress test at 2,000 concurrent connections, Node.js produced 281 connection errors and eventually fell over. 3va stayed up and rejected the overflow cleanly.&lt;/p&gt;

&lt;p&gt;v2.2.0 roadmap targets RUDY (R-U-Dead-Yet) detection and adaptive rate limiting.&lt;/p&gt;




&lt;h2&gt;
  
  
  Post-quantum cryptography
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;vvva_crypto&lt;/code&gt; crate implements ML-KEM-768 and ML-DSA-65, both exposed directly to JS:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;pq&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;crypto&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;publicKey&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;secretKey&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;pq&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;kem&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;generateKeyPair&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;ciphertext&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;sharedSecret&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;pq&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;kem&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;encapsulate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;publicKey&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;recovered&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;pq&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;kem&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;decapsulate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;ciphertext&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;secretKey&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Hybrid TLS (&lt;code&gt;__pqTlsConnect&lt;/code&gt;) combines classical TLS with an ML-KEM-768 key exchange on top. Full post-quantum TLS in production is the v3 target.&lt;/p&gt;




&lt;h2&gt;
  
  
  Honest benchmarks
&lt;/h2&gt;

&lt;p&gt;I am not going to tell you 3va is faster than Bun. It is not.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Node.js 25&lt;/th&gt;
&lt;th&gt;Bun 1.3&lt;/th&gt;
&lt;th&gt;3va 2.0 (debug build)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Startup&lt;/td&gt;
&lt;td&gt;175 ms&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;16 ms&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;94 ms&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HTTP throughput (100k req)&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;20,758 req/s&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;1,572 req/s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Memory (HTTP server)&lt;/td&gt;
&lt;td&gt;44 MB&lt;/td&gt;
&lt;td&gt;32 MB&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;29 MB&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Install time (warm cache)&lt;/td&gt;
&lt;td&gt;984 ms&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;7.8 ms&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;16.8 ms&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The debug build numbers will improve in release mode. But Bun's JSC engine is genuinely faster for raw throughput and startup. That is a known tradeoff.&lt;/p&gt;

&lt;p&gt;What 3va gives you instead: permission isolation at runtime, not just at install time. That is the exchange.&lt;/p&gt;




&lt;h2&gt;
  
  
  What is included
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;✅ Runtime (JS + TypeScript, no config needed)&lt;/li&gt;
&lt;li&gt;✅ Package manager (npm / Yarn / JSR registries, global dedup like pnpm)&lt;/li&gt;
&lt;li&gt;✅ Process manager (replaces pm2)&lt;/li&gt;
&lt;li&gt;✅ Test runner (Jest-compatible, no Jest install)&lt;/li&gt;
&lt;li&gt;✅ Bundler (tree shaking, code splitting, source maps)&lt;/li&gt;
&lt;li&gt;✅ Dev server with HMR (auto-detects framework)&lt;/li&gt;
&lt;li&gt;✅ CPU profiler (&lt;code&gt;.cpuprofile&lt;/code&gt; + flamegraph SVG)&lt;/li&gt;
&lt;li&gt;✅ Audit (malware scan + OSV CVE + secrets detection)&lt;/li&gt;
&lt;li&gt;✅ CDP debugger (&lt;code&gt;--inspect&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;✅ Interactive REPL sandbox&lt;/li&gt;
&lt;li&gt;✅ NAPI v8 native addons&lt;/li&gt;
&lt;li&gt;✅ WebAssembly / WASI preview1&lt;/li&gt;
&lt;li&gt;✅ Post-quantum TLS (ML-KEM-768 hybrid)&lt;/li&gt;
&lt;li&gt;✅ DDoS protection (rate limiting + Slowloris)&lt;/li&gt;
&lt;li&gt;✅ Accessible mode (EN 301 549, screen reader friendly)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Install
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# npm&lt;/span&gt;
npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; @edge_166/3va

&lt;span class="c"&gt;# Homebrew&lt;/span&gt;
brew &lt;span class="nb"&gt;install &lt;/span&gt;OdinoCano/3va/3va

&lt;span class="c"&gt;# Chocolatey&lt;/span&gt;
choco &lt;span class="nb"&gt;install &lt;/span&gt;3va

&lt;span class="c"&gt;# Scoop&lt;/span&gt;
scoop bucket add 3va https://github.com/OdinoCano/3va
scoop &lt;span class="nb"&gt;install &lt;/span&gt;3va

&lt;span class="c"&gt;# cargo&lt;/span&gt;
cargo &lt;span class="nb"&gt;install &lt;/span&gt;vvva_cli

&lt;span class="c"&gt;# Flatpak&lt;/span&gt;
flatpak &lt;span class="nb"&gt;install &lt;/span&gt;flathub com.github.OdinoCano.3va
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  The name
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Veni, Vidi, Vici, Abiit.&lt;/em&gt; He came, he saw, he conquered, he left.&lt;/p&gt;

&lt;p&gt;It is a tribute to Satoshi Nakamoto's approach: build something that matters, ship it to the world, and step away. The code should speak for itself.&lt;/p&gt;




&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/OdinoCano/3va" rel="noopener noreferrer"&gt;github.com/OdinoCano/3va&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;crates.io: search &lt;code&gt;vvva&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Roadmap: &lt;code&gt;docs/12-roadmap/&lt;/code&gt; in the repo&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Feedback welcome — especially from anyone who hits a compatibility issue with a framework or package. That is the highest-priority bug category right now.&lt;/p&gt;

</description>
      <category>rust</category>
      <category>javascript</category>
      <category>security</category>
      <category>node</category>
    </item>
    <item>
      <title>I built a JS/TS runtime in Rust where nothing runs without your permission</title>
      <dc:creator>Edgar Misaél Cano Domínguez</dc:creator>
      <pubDate>Mon, 15 Jun 2026 16:29:40 +0000</pubDate>
      <link>https://dev.to/edgar_misalcanodomngu/i-built-a-jsts-runtime-in-rust-where-nothing-runs-without-your-permission-b6b</link>
      <guid>https://dev.to/edgar_misalcanodomngu/i-built-a-jsts-runtime-in-rust-where-nothing-runs-without-your-permission-b6b</guid>
      <description>&lt;p&gt;Last week I shipped v2.0.0 of 3va — a JavaScript and TypeScript runtime written in Rust. Here is why I built it and what makes it different from Node.js, Bun, and Deno.&lt;br&gt;
The problem&lt;br&gt;
In 2024, the xz backdoor was hidden inside a postinstall script. The event-stream attack in 2018 targeted a specific Bitcoin wallet by injecting code at install time. The node-ipc protest-ware in 2022 deleted files on machines with Russian or Belarusian IP addresses.&lt;br&gt;
All three attacks had the same root cause: the runtime trusted the package.&lt;br&gt;
npm, pnpm, Yarn, and Bun all execute postinstall scripts by default. Some let you opt out. None of them block it unconditionally at the runtime level — because that would require the runtime to enforce permissions, and none of them do.&lt;br&gt;
3va does.&lt;br&gt;
How it works&lt;br&gt;
Every capability is blocked by default. The filesystem, network, environment variables, child processes, and native addons are all hard-blocked unless you explicitly grant them:&lt;br&gt;
Bash&lt;br&gt;
Permissions apply uniformly to your code and every dependency it loads. There is no trusted/untrusted boundary that a package can cross.&lt;br&gt;
Post-install scripts are blocked unconditionally. Not as a flag. Not as a config option. The package manager simply does not execute them. Ever.&lt;br&gt;
Drop-in replacement — same ecosystem, same frameworks&lt;br&gt;
This is the part that surprised most people I showed it to.&lt;br&gt;
3va installs from the same registries you already use:&lt;br&gt;
Bash&lt;br&gt;
It runs the same frameworks:&lt;br&gt;
Frontend: Next.js, Astro, Nuxt, SvelteKit, Remix, Gatsby, SolidStart, Qwik&lt;br&gt;
Backend: Express, Fastify, Koa, NestJS&lt;br&gt;
Mobile: React Native&lt;br&gt;
No migration. No adapter layer. You add a "3va" key to your existing package.json to declare permissions — a pattern Node.js, Bun, pnpm, and Yarn all ignore safely, just like "jest" or "eslint" config.&lt;br&gt;
No pm2&lt;br&gt;
3va ships with a process manager built into the runtime:&lt;br&gt;
Bash&lt;br&gt;
Auto-restart on crash is on by default. Process state survives reboots. No separate daemon, no extra install.&lt;br&gt;
DDoS protection built in&lt;br&gt;
The HTTP layer enforces a hard connection limit of 1,024 concurrent connections and includes Slowloris mitigation out of the box. Node.js and Bun have neither.&lt;br&gt;
This is intentional behavior — 3va drops excess connections rather than queuing them indefinitely. In a stress test at 2,000 concurrent connections, Node.js produced 281 connection errors and eventually fell over. 3va stayed up and rejected the overflow cleanly.&lt;br&gt;
v2.2.0 roadmap targets RUDY (R-U-Dead-Yet) detection and adaptive rate limiting.&lt;br&gt;
Post-quantum cryptography&lt;br&gt;
The vvva_crypto crate implements ML-KEM-768 and ML-DSA-65, both exposed directly to JS:&lt;br&gt;
Js&lt;br&gt;
Hybrid TLS (__pqTlsConnect) combines classical TLS with an ML-KEM-768 key exchange on top. Full post-quantum TLS in production is the v3 target.&lt;br&gt;
Honest benchmarks&lt;br&gt;
I am not going to tell you 3va is faster than Bun. It is not.&lt;/p&gt;

&lt;p&gt;Node.js 25&lt;br&gt;
Bun 1.3&lt;br&gt;
3va 2.0 (debug build)&lt;br&gt;
Startup&lt;br&gt;
175 ms&lt;br&gt;
16 ms&lt;br&gt;
94 ms&lt;br&gt;
HTTP throughput (100k req)&lt;br&gt;
—&lt;br&gt;
20,758 req/s&lt;br&gt;
1,572 req/s&lt;br&gt;
Memory (HTTP server)&lt;br&gt;
44 MB&lt;br&gt;
32 MB&lt;br&gt;
29 MB&lt;br&gt;
Install time (warm cache)&lt;br&gt;
984 ms&lt;br&gt;
7.8 ms&lt;br&gt;
16.8 ms&lt;br&gt;
The debug build numbers will improve in release mode. But Bun's JSC engine is genuinely faster for raw throughput and startup. That is a known tradeoff.&lt;br&gt;
What 3va gives you instead: permission isolation at runtime, not just at install time. That is the exchange.&lt;br&gt;
What is included&lt;br&gt;
✅ Runtime (JS + TypeScript, no config needed)&lt;br&gt;
✅ Package manager (npm / Yarn / JSR registries, global dedup like pnpm)&lt;br&gt;
✅ Process manager (replaces pm2)&lt;br&gt;
✅ Test runner (Jest-compatible, no Jest install)&lt;br&gt;
✅ Bundler (tree shaking, code splitting, source maps)&lt;br&gt;
✅ Dev server with HMR (auto-detects framework)&lt;br&gt;
✅ CPU profiler (.cpuprofile + flamegraph SVG)&lt;br&gt;
✅ Audit (malware scan + OSV CVE + secrets detection)&lt;br&gt;
✅ CDP debugger (--inspect)&lt;br&gt;
✅ Interactive REPL sandbox&lt;br&gt;
✅ NAPI v8 native addons&lt;br&gt;
✅ WebAssembly / WASI preview1&lt;br&gt;
✅ Post-quantum TLS (ML-KEM-768 hybrid)&lt;br&gt;
✅ DDoS protection (rate limiting + Slowloris)&lt;br&gt;
✅ Accessible mode (EN 301 549, screen reader friendly)&lt;br&gt;
Install&lt;br&gt;
Bash&lt;br&gt;
The name&lt;br&gt;
Veni, Vidi, Vici, Abiit. He came, he saw, he conquered, he left.&lt;br&gt;
It is a tribute to Satoshi Nakamoto's approach: build something that matters, ship it to the world, and step away. The code should speak for itself.&lt;br&gt;
Links&lt;br&gt;
GitHub: github.com/OdinoCano/3va&lt;br&gt;
crates.io: search vvva&lt;br&gt;
Roadmap: docs/12-roadmap/ in the repo&lt;br&gt;
Feedback welcome — especially from anyone who hits a compatibility issue with a framework or package. That is the highest-priority bug category right now.&lt;/p&gt;

</description>
      <category>rust</category>
      <category>javascript</category>
      <category>security</category>
      <category>node</category>
    </item>
  </channel>
</rss>
