{"slug": "v8", "name": "V8", "category": "other", "category_name": "Other software", "description": "", "recommenders": 11, "commenters": 54, "warners": 14, "score": 3.594, "rising": -0.95, "first": "2025-11-01", "latest": "2026-09-28", "why": "Titan Planet now use v8 to run js bundles no more boa", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 11, "neutral": 12, "compare": 15, "warn": 16}, "spark": [1, 1, 3, 0, 1, 0, 1, 2, 0, 1, 1, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "Titan Planet now use v8 to run js bundles no more boa", "kind": "", "icon": true, "domain": "v8.dev", "github_repo": null, "official_url": "https://v8.dev", "pricing": "", "aliases": ["V8"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 798150338, "item_id": 49884396, "url": "https://news.ycombinator.com/item?id=49884396", "by": "okanat", "date": "2026-09-28", "stance": "recommend", "quote": "Chromium has V8 which is the faster JS engine", "excerpt": "Not license, it is the codebase and tooling. Waterfox and LibreWolf exist. However FF code base is a bit a mess compared to Chromium. Chromium has a better build system using Starlark. Starlark is quite resilient against exploding complexity and easier to keep C++ codebases sane. Mozilla's build system is a soup of multiple tools. Firefox used to use Mercury and only lately switched to Git. The origins of Chromium co", "context": "", "use_case": "JavaScript engine", "switched_from": "", "story": "I switched to Brave"}, {"id": 787030290, "item_id": 49189393, "url": "https://news.ycombinator.com/item?id=49189393", "by": "jauntywundrkind", "date": "2026-08-05", "stance": "recommend", "quote": "the virtues of v8 sandboxing / isolates!", "excerpt": "on the one hand, hosting is hard, you should pay people to host, especially distributed systems. on the other hand, deno land folks stole from (used open source from) the best. the coordination layer/control-plane is all S3 CAS of dumb json files, which is a fantastic common-mode infra requirement for most orgs anyways, & perhaps a durable control-plane substrate you'd feel comfortable having someone else run (such a", "context": "", "use_case": "", "switched_from": "", "story": "Celld: Self-hosted, distributed Durable Objects"}, {"id": 779059745, "item_id": 48691234, "url": "https://news.ycombinator.com/item?id=48691234", "by": "quotemstr", "date": "2026-06-26", "stance": "recommend", "quote": "V8's Orinoco is also pretty good now.", "excerpt": "ZGC is extremely good work. https://wiki.openjdk.org/spaces/zgc/pages/34668579/Main > ZGC performs all expensive work concurrently, without stopping the execution of application threads for more than a millisecond. It is suitable for applications which require low latency. Pause times are independent of the heap size that is being used. ZGC works well with heap sizes from a few hundred megabytes to 16TB. Go's GC is a", "context": "", "use_case": "", "switched_from": "", "story": "Gossamer: a Rust-flavoured language with real goroutines and pause-free memory"}, {"id": 774191073, "item_id": 48386942, "url": "https://news.ycombinator.com/item?id=48386942", "by": "AlotOfReading", "date": "2026-06-03", "stance": "recommend", "quote": "I think the speed of V8 speaks for itself.", "excerpt": "LLVM does speculative devirtualization as well these days, though it's not as aggressive as Hotspot. High-performance native code tries to avoid deep dynamic hierarchies anyway, so it's mitigated by cultural practices. GCs are definitely a strong point for Java, but most high-performance code can be rewritten to avoid pummeling memory management. This used to be common for Java in financial applications, not sure if ", "context": "", "use_case": "JavaScript engine", "switched_from": "", "story": "Every Byte Matters"}, {"id": 772897552, "item_id": 48306097, "url": "https://news.ycombinator.com/item?id=48306097", "by": "qsort", "date": "2026-05-28", "stance": "recommend", "quote": "wouldn't be up there without V8 and friends", "excerpt": "I don't know what this table is supposed to measure but it doesn't check out. (C, C++) and (JS, TS) are almost source-compatible, chances are you can rename test.c to test.cpp and test.js to test.ts and you're done. Yet they're showing massive differences? Also most of the compiled languages with no runtime should get results that are very close to each other: good compilers should produce similar object-code for thi", "context": "", "use_case": "", "switched_from": "", "story": "The Green Side of the Lua"}]}], "caveats": [{"label": "", "summary": "", "quotes": [{"id": 797796545, "item_id": 49862284, "url": "https://news.ycombinator.com/item?id=49862284", "by": "doodlesdev", "date": "2026-09-27", "stance": "warn", "quote": "JavaScript V8 Engine with JIT enabled", "excerpt": "Craziest thing is the mixture of: - A browser engine outdated by two years, with known-exploited CVEs - Chromium sandboxing completely disabled [0] - JavaScript V8 Engine with JIT enabled [0] For me, it's surprising we haven't seen more of these yet. [0]: https://github.com/obsproject/obs-browser/blob/f555da02b1d5910008958ca377e0f1a3889eb023/obs-browser-plugin.cpp", "context": "", "use_case": "", "switched_from": "", "story": "How one Twitch chat message became code execution on a streamer\u2019s PC"}, {"id": 796980737, "item_id": 49811296, "url": "https://news.ycombinator.com/item?id=49811296", "by": "suplexer", "date": "2026-09-23", "stance": "warn", "quote": "Even the V8 team gave up on documentation", "excerpt": "Instead of writing utilities, libraries, guidelines, build-time transformations, etc to help (or even) force JS devs to stay on the happy path, the industry \"experts\", large companies, and thought leaders chose to go the exact opposite route with React and adjacent tools. The results speak for themselves... Even the V8 team gave up on documentation: https://v8.dev/blog There is nothing stopping JS devs from working w", "context": "", "use_case": "", "switched_from": "", "story": "The JavaScript Midlife Crisis"}, {"id": 794771201, "item_id": 49673200, "url": "https://news.ycombinator.com/item?id=49673200", "by": "rvz", "date": "2026-09-12", "stance": "warn", "quote": "escapeable at both the engine level in V8, Gecko and JavaScriptCore", "excerpt": "I agree. It is mostly a solution looking for a problem and has close to the same functional downsides as Flash or Applets other than \"transparency\". Its 'sandbox' is also escapeable at both the engine level in V8, Gecko and JavaScriptCore (All in C/C++) and at the implementation level; especially if the software was converted from C to WASM. So it is not the silver bullet people think it is. [0] https://nvd.nist.gov/", "context": "", "use_case": "", "switched_from": "", "story": "Performance of WebAssembly Runtimes in 2026"}, {"id": 793226144, "item_id": 49576634, "url": "https://news.ycombinator.com/item?id=49576634", "by": "odyssey7", "date": "2026-09-05", "stance": "warn", "quote": "The V8 vulnerability being exploited today", "excerpt": "How many Heartbleeds[1] must software users and our national security interests endure before the industry treats memory safety as a best practice for systems with exposure to the Internet? The V8 vulnerability being exploited today, CVE-2026-85046, is listed in NVD under CWE-843, \"Access of Resource Using Incompatible Type ('Type Confusion').\"[2] On this class of vulnerabilities, MITRE explains: > When a memory buff", "context": "", "use_case": "", "switched_from": "", "story": "Actively exploited sandbox RCE in all Chromium versions"}]}], "who": [], "tags": [], "use_cases": ["javascript engine", "sandbox runtime", "javascript engine optimization", "javascript execution"], "compared": [{"slug": "quickjs", "name": "QuickJS", "co": 7, "switched_from": 0, "switched_to": 0}, {"slug": "boa", "name": "Boa", "co": 4, "switched_from": 1, "switched_to": 0}, {"slug": "spidermonkey", "name": "SpiderMonkey", "co": 5, "switched_from": 0, "switched_to": 0}, {"slug": "node-js", "name": "Node.js", "co": 2, "switched_from": 0, "switched_to": 0}, {"slug": "cpython", "name": "CPython", "co": 2, "switched_from": 0, "switched_to": 0}, {"slug": "firefox", "name": "Firefox", "co": 2, "switched_from": 0, "switched_to": 0}], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=46486978", "title": "JavaScript engines zoo \u2013 Compare every JavaScript engine", "mentions": 6}, {"url": "https://news.ycombinator.com/item?id=49570669", "title": "Actively exploited sandbox RCE in all Chromium versions", "mentions": 4}, {"url": "https://news.ycombinator.com/item?id=46454693", "title": "OpenWorkers: Self-Hosted Cloudflare Workers in Rust", "mentions": 3}, {"url": "https://news.ycombinator.com/item?id=49807248", "title": "The JavaScript Midlife Crisis", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=48875377", "title": "Show HN: Ant \u2013 A JavaScript runtime and ecosystem", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=48262160", "title": "The Green Side of the Lua", "mentions": 2}], "sentiment_by_month": {"2025-11": {"recommend": 1, "compare": 3, "warn": 1, "neutral": 1}, "2025-12": {"neutral": 1, "warn": 1, "recommend": 1, "compare": 1}, "2026-01": {"compare": 5, "neutral": 2, "warn": 2, "recommend": 3}, "2026-02": {"warn": 1, "neutral": 1}, "2026-03": {"neutral": 1, "warn": 2, "compare": 2, "recommend": 1}, "2026-04": {"warn": 1, "compare": 1, "neutral": 1}, "2026-05": {"warn": 3, "neutral": 1, "recommend": 1, "compare": 1}, "2026-06": {"recommend": 2}, "2026-07": {"compare": 2, "neutral": 1}, "2026-08": {"recommend": 1}, "2026-09": {"neutral": 3, "warn": 5, "recommend": 1}, "2026-10": {}}, "quotes": [{"id": 798150338, "item_id": 49884396, "url": "https://news.ycombinator.com/item?id=49884396", "by": "okanat", "date": "2026-09-28", "stance": "recommend", "quote": "Chromium has V8 which is the faster JS engine", "excerpt": "Not license, it is the codebase and tooling. Waterfox and LibreWolf exist. However FF code base is a bit a mess compared to Chromium. Chromium has a better build system using Starlark. Starlark is quite resilient against exploding complexity and easier to keep C++ codebases sane. Mozilla's build system is a soup of multiple tools. Firefox used to use Mercury and only lately switched to Git. The origins of Chromium co", "context": "", "use_case": "JavaScript engine", "switched_from": "", "story": "I switched to Brave"}, {"id": 797969776, "item_id": 49873111, "url": "https://news.ycombinator.com/item?id=49873111", "by": "smj-edison", "date": "2026-09-28", "stance": "neutral", "quote": "V8's zones are interesting in this area", "excerpt": "Not sure if this is relevant, but I was in a discussion about heap layout a while ago, and one of the commenters was talking about how they were able to have classic lisp-style linked lists with decent performance by using a copying garbage collector: https://ziggit.dev/t/memory-layout-suggestions-for-tcl-interpreter/12583/5?u=smj-edison Or were you referring more to all the intermediate allocations that aren't the o", "context": "", "use_case": "", "switched_from": "", "story": "Writing Efficient C++ Code (2013)"}, {"id": 797796545, "item_id": 49862284, "url": "https://news.ycombinator.com/item?id=49862284", "by": "doodlesdev", "date": "2026-09-27", "stance": "warn", "quote": "JavaScript V8 Engine with JIT enabled", "excerpt": "Craziest thing is the mixture of: - A browser engine outdated by two years, with known-exploited CVEs - Chromium sandboxing completely disabled [0] - JavaScript V8 Engine with JIT enabled [0] For me, it's surprising we haven't seen more of these yet. [0]: https://github.com/obsproject/obs-browser/blob/f555da02b1d5910008958ca377e0f1a3889eb023/obs-browser-plugin.cpp", "context": "", "use_case": "", "switched_from": "", "story": "How one Twitch chat message became code execution on a streamer\u2019s PC"}, {"id": 797203521, "item_id": 49825220, "url": "https://news.ycombinator.com/item?id=49825220", "by": "suplexer", "date": "2026-09-24", "stance": "neutral", "quote": "Java -> GWT/J2CL -> JS -> V8 (in Chrome) -> native", "excerpt": "1) Google Sheets use case Long story short they are comparing the performance of server-side Java to client-side JS (Java transpiled through GWT/J2CL). So something like: Java -> Hotspot -> native vs Java -> GWT/J2CL -> JS -> V8 (in Chrome) -> native Apples to oranges. They then used J2CL (I presume, not clear from the article) to port Java to Wasm and eventually got around 66% of the server-side Java performance. Th", "context": "", "use_case": "", "switched_from": "", "story": "The JavaScript Midlife Crisis"}, {"id": 796980737, "item_id": 49811296, "url": "https://news.ycombinator.com/item?id=49811296", "by": "suplexer", "date": "2026-09-23", "stance": "warn", "quote": "Even the V8 team gave up on documentation", "excerpt": "Instead of writing utilities, libraries, guidelines, build-time transformations, etc to help (or even) force JS devs to stay on the happy path, the industry \"experts\", large companies, and thought leaders chose to go the exact opposite route with React and adjacent tools. The results speak for themselves... Even the V8 team gave up on documentation: https://v8.dev/blog There is nothing stopping JS devs from working w", "context": "", "use_case": "", "switched_from": "", "story": "The JavaScript Midlife Crisis"}, {"id": 794771201, "item_id": 49673200, "url": "https://news.ycombinator.com/item?id=49673200", "by": "rvz", "date": "2026-09-12", "stance": "warn", "quote": "escapeable at both the engine level in V8, Gecko and JavaScriptCore", "excerpt": "I agree. It is mostly a solution looking for a problem and has close to the same functional downsides as Flash or Applets other than \"transparency\". Its 'sandbox' is also escapeable at both the engine level in V8, Gecko and JavaScriptCore (All in C/C++) and at the implementation level; especially if the software was converted from C to WASM. So it is not the silver bullet people think it is. [0] https://nvd.nist.gov/", "context": "", "use_case": "", "switched_from": "", "story": "Performance of WebAssembly Runtimes in 2026"}, {"id": 793433888, "item_id": 49589618, "url": "https://news.ycombinator.com/item?id=49589618", "by": "preg_match", "date": "2026-09-06", "stance": "neutral", "quote": "the V8 team released a blog when they introduced jitless mode", "excerpt": "Yes, the V8 team released a blog when they introduced jitless mode: https://v8.dev/blog/jitless In synthetic benchmarks, there was a 40-80% reduction in performance when disabling the JIT. But in a simulated test on YouTube.com, the performance delta was only 6%. This isn\u2019t the best source as it\u2019s a bit old, and it wasn\u2019t just JIT that was disabled. But the core idea is the same: calculation-heavy code can see an imp", "context": "", "use_case": "", "switched_from": "", "story": "Actively exploited sandbox RCE in all Chromium versions"}, {"id": 793226144, "item_id": 49576634, "url": "https://news.ycombinator.com/item?id=49576634", "by": "odyssey7", "date": "2026-09-05", "stance": "warn", "quote": "The V8 vulnerability being exploited today", "excerpt": "How many Heartbleeds[1] must software users and our national security interests endure before the industry treats memory safety as a best practice for systems with exposure to the Internet? The V8 vulnerability being exploited today, CVE-2026-85046, is listed in NVD under CWE-843, \"Access of Resource Using Incompatible Type ('Type Confusion').\"[2] On this class of vulnerabilities, MITRE explains: > When a memory buff", "context": "", "use_case": "", "switched_from": "", "story": "Actively exploited sandbox RCE in all Chromium versions"}, {"id": 793177376, "item_id": 49573586, "url": "https://news.ycombinator.com/item?id=49573586", "by": "roywiggins", "date": "2026-09-05", "stance": "warn", "quote": "I chained this bug with an n-day sandbox escape and flagged the v8CTF.", "excerpt": "> I chained this bug with an n-day sandbox escape and flagged the v8CTF. https://serotav.github.io/Writeups/v8/when-sorting-leads-to-confusion/", "context": "", "use_case": "", "switched_from": "", "story": "Actively exploited sandbox RCE in all Chromium versions"}, {"id": 793141744, "item_id": 49571359, "url": "https://news.ycombinator.com/item?id=49571359", "by": "Genwald", "date": "2026-09-04", "stance": "neutral", "quote": "V8 also has its own sandbox", "excerpt": "V8 also has its own sandbox, which I believe exists in that sandbox. I assume that's the one this exploit has RCE in, but its unclear. https://chromium.googlesource.com/v8/v8.git/+/refs/heads/main/src/sandbox/README.md", "context": "", "use_case": "", "switched_from": "", "story": "Actively exploited sandbox RCE in all Chromium versions"}, {"id": 787030290, "item_id": 49189393, "url": "https://news.ycombinator.com/item?id=49189393", "by": "jauntywundrkind", "date": "2026-08-05", "stance": "recommend", "quote": "the virtues of v8 sandboxing / isolates!", "excerpt": "on the one hand, hosting is hard, you should pay people to host, especially distributed systems. on the other hand, deno land folks stole from (used open source from) the best. the coordination layer/control-plane is all S3 CAS of dumb json files, which is a fantastic common-mode infra requirement for most orgs anyways, & perhaps a durable control-plane substrate you'd feel comfortable having someone else run (such a", "context": "", "use_case": "", "switched_from": "", "story": "Celld: Self-hosted, distributed Durable Objects"}, {"id": 782761617, "item_id": 48922601, "url": "https://news.ycombinator.com/item?id=48922601", "by": "ameliaquining", "date": "2026-07-15", "stance": "neutral", "quote": "V8 does have APIs for code caching and startup snapshots", "excerpt": "This is barely a cloud, since it only serves one particular purpose and everything runs in V8 isolates. Although they would need to ensure they're appropriately capping each tenant's compute and bandwidth; the article mostly doesn't get into that. Fully AOT compilers for JavaScript are basically research projects rather than production-ready platforms, because the extensive dynamicity of JavaScript's semantics makes ", "context": "", "use_case": "", "switched_from": "", "story": "Telegram Serverless"}, {"id": 782072144, "item_id": 48879509, "url": "https://news.ycombinator.com/item?id=48879509", "by": "progx", "date": "2026-07-12", "stance": "compare", "quote": "V8 21M, Score 47285, ES6 98%", "excerpt": "https://zoo.js.org/ V8 21M, Score 47285, ES6 98% Ant 4.3M, >>> Score 69 <<<, ES6 50%", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: Ant \u2013 A JavaScript runtime and ecosystem"}, {"id": 782013840, "item_id": 48875865, "url": "https://news.ycombinator.com/item?id=48875865", "by": "egnehots", "date": "2026-07-11", "stance": "compare", "quote": "near-V8 speeds", "excerpt": "You're stating: \"delivers near-V8 speeds\" But according to zoo.js benchmarks that is far from the case: https://zoo.js.org/ Unless there were major perf gains since 2026-02-10?", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: Ant \u2013 A JavaScript runtime and ecosystem"}, {"id": 779059745, "item_id": 48691234, "url": "https://news.ycombinator.com/item?id=48691234", "by": "quotemstr", "date": "2026-06-26", "stance": "recommend", "quote": "V8's Orinoco is also pretty good now.", "excerpt": "ZGC is extremely good work. https://wiki.openjdk.org/spaces/zgc/pages/34668579/Main > ZGC performs all expensive work concurrently, without stopping the execution of application threads for more than a millisecond. It is suitable for applications which require low latency. Pause times are independent of the heap size that is being used. ZGC works well with heap sizes from a few hundred megabytes to 16TB. Go's GC is a", "context": "", "use_case": "", "switched_from": "", "story": "Gossamer: a Rust-flavoured language with real goroutines and pause-free memory"}, {"id": 774191073, "item_id": 48386942, "url": "https://news.ycombinator.com/item?id=48386942", "by": "AlotOfReading", "date": "2026-06-03", "stance": "recommend", "quote": "I think the speed of V8 speaks for itself.", "excerpt": "LLVM does speculative devirtualization as well these days, though it's not as aggressive as Hotspot. High-performance native code tries to avoid deep dynamic hierarchies anyway, so it's mitigated by cultural practices. GCs are definitely a strong point for Java, but most high-performance code can be rewritten to avoid pummeling memory management. This used to be common for Java in financial applications, not sure if ", "context": "", "use_case": "JavaScript engine", "switched_from": "", "story": "Every Byte Matters"}, {"id": 772971616, "item_id": 48310726, "url": "https://news.ycombinator.com/item?id=48310726", "by": "Rochus", "date": "2026-05-28", "stance": "compare", "quote": "V8 was significantly faster than LuaJIT", "excerpt": "V8 was significantly faster than LuaJIT when I did measurements in 2021 (see https://github.com/rochus-keller/Oberon/blob/master/testcases/Are-we-fast-yet/Are-we-fast-yet_results_linux.pdf). Sure there are microbenchmarks where LuaJIT performs equally well or even faster, but overall (geomean of factors) V8 was 2.5 times faster. This comes with a price though. If you're interested in performance, Mono was equally fas", "context": "", "use_case": "", "switched_from": "", "story": "The Green Side of the Lua"}, {"id": 772897552, "item_id": 48306097, "url": "https://news.ycombinator.com/item?id=48306097", "by": "qsort", "date": "2026-05-28", "stance": "recommend", "quote": "wouldn't be up there without V8 and friends", "excerpt": "I don't know what this table is supposed to measure but it doesn't check out. (C, C++) and (JS, TS) are almost source-compatible, chances are you can rename test.c to test.cpp and test.js to test.ts and you're done. Yet they're showing massive differences? Also most of the compiled languages with no runtime should get results that are very close to each other: good compilers should produce similar object-code for thi", "context": "", "use_case": "", "switched_from": "", "story": "The Green Side of the Lua"}, {"id": 770695904, "item_id": 48168494, "url": "https://news.ycombinator.com/item?id=48168494", "by": "fweimer", "date": "2026-05-17", "stance": "warn", "quote": "People reported challenges building V8 (whether upstream or the Node.js variant) on s390x with z13 support.", "excerpt": "People reported challenges building V8 (whether upstream or the Node.js variant) on s390x with z13 support. I don't know if it was discussed on the porters mailing list because it's not public: https://groups.google.com/g/v8-s390-ports Elsewhere, some people interpreted https://github.com/google/highway/issues/1895 as meaning that Highway code does not work on z13 at all.", "context": "", "use_case": "", "switched_from": "", "story": "C++26 Shipped a SIMD Library Nobody Asked For"}, {"id": 770570448, "item_id": 48160653, "url": "https://news.ycombinator.com/item?id=48160653", "by": "anthk", "date": "2026-05-16", "stance": "warn", "quote": "If any JS and v8 have tons of CVE's.", "excerpt": "> legacy unsafe formats like PDF using safe managed languages, typically JavaScript. Are you ironic? If any JS and v8 have tons of CVE's. Stop being deluded with these hip languages. Rust? you wish. Maybe inferno with proper namespaces AND in-kernel namespace support. No, not like Linux. LIke 9front. https://app.opencve.io/cve/?product=v8&vendor=google", "context": "", "use_case": "", "switched_from": "", "story": "A 0-click exploit chain for the Pixel 10"}, {"id": 769444929, "item_id": 48090308, "url": "https://news.ycombinator.com/item?id=48090308", "by": "jwilliams", "date": "2026-05-10", "stance": "neutral", "quote": "V8 isolates", "excerpt": "I've been working on JavaScript runner for untrusted code. The whole API is only exposed via messages passed over stdio. Security layers: V8 isolates, two-stage seccomp, frozen globals, mount namespaces, landlock, and more. https://github.com/jonathannen/hermit Plus it's too early to really show, but also working on a dataflow language (w/ immutable data) that uses some code semantics from Rust/Zig and friends: https", "context": "", "use_case": "JavaScript engine", "switched_from": "", "story": "Ask HN: What Are You Working On? (May 2026)"}, {"id": 768292433, "item_id": 48018277, "url": "https://news.ycombinator.com/item?id=48018277", "by": "apatheticonion", "date": "2026-05-04", "stance": "warn", "quote": "update v8 as they make weird changes every now and then", "excerpt": "Having written a JavaScript runtime in Rust in the past - Rust is an excellent choice. Not just due to the development experience, but also for embedders who want to consume the project as a a library (rather than a binary, e.g. node). Not sure about vibe-coding it. While they aren't using v8, LLMs made it easier to understand v8 quirks and update v8 as they make weird changes every now and then. It couldn't write th", "context": "", "use_case": "", "switched_from": "", "story": "Bun is being ported from Zig to Rust"}, {"id": 765807043, "item_id": 47862940, "url": "https://news.ycombinator.com/item?id=47862940", "by": "S3RBVN", "date": "2026-04-22", "stance": "neutral", "quote": "runs server side inside a V8 isolate", "excerpt": "Hello, I\u2019m Alexandru \u0218erban, and I\u2019m building Scalple. Happy to go deep on any part of it. The problem we kept running into: Across startups and even some mid-sized companies we saw the same three ways of handling production database access: 1. a shared .env in 1Password 2. an SSH tunnel through a bastion 3. just giving engineers the database password All three break down the same way: when something goes wrong, you ", "context": "", "use_case": "sandbox runtime", "switched_from": "", "story": "Show HN: Scalple \u2013 Structured production DB access with an immutable audit trail"}, {"id": 765547424, "item_id": 47846714, "url": "https://news.ycombinator.com/item?id=47846714", "by": "Someone", "date": "2026-04-21", "stance": "compare", "quote": "", "excerpt": "I agree, but there\u2019s a tiny caveat that this is for one specific benchmark that, I think, doesn\u2019t reflect most real-world code. I\u2019m basing that on the 1.6% improvement they got on speeding up sqrt. That surprised me, because, to get such an improvement, the benchmark must spend over 1.6% of its time in there, to start with. Looking in the git repo, it seems that did happen in the nbody simulation (https://github.com/", "context": "", "use_case": "", "switched_from": "", "story": "How to Make a Fast Dynamic Language Interpreter"}, {"id": 762512752, "item_id": 47657047, "url": "https://news.ycombinator.com/item?id=47657047", "by": "anematode", "date": "2026-04-05", "stance": "warn", "quote": "V8 and JSC totally crapped out", "excerpt": "Nice post :) Last year I was working on a tail-call interpreter (https://github.com/anematode/b-jvm/blob/main/vm/interpreter2.c) and found a similar regression on WASM when transforming it from a switch-dispatch loop to tail calls. SpiderMonkey did the best with almost no regression, while V8 and JSC totally crapped out \u2013 same finding as the blog post. Because I was targeting both native and WASM I wrote a convoluted", "context": "", "use_case": "", "switched_from": "", "story": "A tail-call interpreter in (nightly) Rust"}, {"id": 759403760, "item_id": 47462735, "url": "https://news.ycombinator.com/item?id=47462735", "by": "lern_too_spel", "date": "2026-03-20", "stance": "warn", "quote": "\"Efficient structs\" in v8 are just inefficient Java classes.", "excerpt": "\"Efficient structs\" in v8 are just inefficient Java classes. https://www.dashlane.com/blog/how-is-data-stored-in-v8-js-engine-memory The optimization you discussed for GIS data is called struct of arrays. JavaScript does not do that automatically for you. You would have to do the same thing manually in JavaScript to avoid per triple object overhead.", "context": "", "use_case": "", "switched_from": "", "story": "Java Is Fast. Your Code Might Not Be"}, {"id": 759401409, "item_id": 47462588, "url": "https://news.ycombinator.com/item?id=47462588", "by": "kam", "date": "2026-03-20", "stance": "compare", "quote": "", "excerpt": "No, serde-wasm-bindgen implements the serde Serializer interface by calling into JS to directly construct the JS objects on the JS heap without an intermediate serialization/deserialization. You pay the cost of one or more FFI calls for every object though. https://docs.rs/serde-wasm-bindgen/", "context": "", "use_case": "", "switched_from": "", "story": "We rewrote our Rust WASM Parser in TypeScript \u2013 and it got 3x Faster"}, {"id": 759395920, "item_id": 47462245, "url": "https://news.ycombinator.com/item?id=47462245", "by": "szmarczak", "date": "2026-03-20", "stance": "recommend", "quote": "V8 JSON nowadays is highly optimized", "excerpt": "> Attempted Fix: Skip the JSON Round-Trip > We integrated serde-wasm-bindgen So you're reinventing JSON but binary? V8 JSON nowadays is highly optimized [1] and can process gigabytes per second [2], I doubt it is a bottleneck here. [1] https://v8.dev/blog/json-stringify [2] https://github.com/simdjson/simdjson", "context": "", "use_case": "", "switched_from": "", "story": "We rewrote our Rust WASM Parser in TypeScript \u2013 and it got 3x Faster"}, {"id": 758019585, "item_id": 47376224, "url": "https://news.ycombinator.com/item?id=47376224", "by": "Ralfp", "date": "2026-03-14", "stance": "compare", "quote": "It's not a full optimizing JIT like V8's TurboFan", "excerpt": "CPython 3.13 went further with an experimental copy-and-patch JIT compiler -- a lightweight JIT that stitches together pre-compiled machine code templates instead of generating code from scratch. It's not a full optimizing JIT like V8's TurboFan or a tracing JIT like PyPy's; Good news. Python 3.15 adapts Pypy tracing approach to JIT and there are real performance gains now: https://github.com/python/cpython/issues/13", "context": "", "use_case": "", "switched_from": "", "story": "Python: The Optimization Ladder"}, {"id": 757695267, "item_id": 47355954, "url": "https://news.ycombinator.com/item?id=47355954", "by": "TheUncharted", "date": "2026-03-12", "stance": "warn", "quote": "V8 isolates bring ~20MB of binary", "excerpt": "Hey everyone, I was inspired by Monty and built Zapcode \u2014 an open-source TypeScript subset interpreter in Rust, designed for AI agents that write code instead of chaining tool calls. The problem: AI agents are better when they write code rather than calling tools one by one. Cloudflare (https://blog.cloudflare.com/code-mode/), Anthropic, HuggingFace, and Pydantic are all pushing this pattern. But running AI-generated", "context": "", "use_case": "", "switched_from": "", "story": "Zapcode: A TypeScript interpreter in Rust for AI agents (2\u00b5s start, sandbox)"}, {"id": 757057920, "item_id": 47316120, "url": "https://news.ycombinator.com/item?id=47316120", "by": "Maxatar", "date": "2026-03-09", "stance": "neutral", "quote": "V8 is a JIT compiler that uses the Ignition [1] interpreter", "excerpt": "V8 is a JIT compiler that uses the Ignition [1] interpreter and only compiles sections of code down to machine instructions once they've been marked as hot via TurboFan [2]. V8 can also go back and forth from machine instructions back to bytecode if it identifies that certain optimization assumptions no longer hold. [1] https://v8.dev/docs/ignition [2] https://v8.dev/docs/turbofan", "context": "", "use_case": "", "switched_from": "", "story": "Show HN: The Mog Programming Language"}, {"id": 755037488, "item_id": 47189843, "url": "https://news.ycombinator.com/item?id=47189843", "by": "conartist6", "date": "2026-02-27", "stance": "neutral", "quote": "For now it's fast enough", "excerpt": "That's just how string iterators work in Javascript: one object for every byte. For now it's fast enough: https://v8.dev/blog/trash-talk. I'd put the GC overhead at around 10-15%, even with 20+ objects per byte when you add up all the stages in a real text processing pipeline. It's that cheap because the objects all have short lifespans and so they spend all their lives in the \"tiny short-lived objects\" memory pool w", "context": "", "use_case": "", "switched_from": "", "story": "We deserve a better streams API for JavaScript"}, {"id": 750745728, "item_id": 46921608, "url": "https://news.ycombinator.com/item?id=46921608", "by": "fulafel", "date": "2026-02-06", "stance": "warn", "quote": "There's been a constant stream of v8 VM sandbox escape discoveries since its dawn of course.", "excerpt": "There's been a constant stream of v8 VM sandbox escape discoveries since its dawn of course. Considering those have mostly existed for a long time before publication it's very porous most of the time. And Python VM had/has its sandboxing features too, previously rexec and still https://github.com/zopefoundation/RestrictedPython - in the same category I'd argue. Then there's of course hypervisor based virtualization a", "context": "", "use_case": "", "switched_from": "", "story": "Python interpreter written in Rust for use by AI"}, {"id": 747675522, "item_id": 46729720, "url": "https://news.ycombinator.com/item?id=46729720", "by": "Metasyntactic", "date": "2026-01-22", "stance": "warn", "quote": "The js engines of the time were not efficient with that design.", "excerpt": "I wrote several of typescript's initial compilers. We didn't use red/green for a few reasons: 1. The js engines of the time were not efficient with that design. This was primarily testing v8 and chakra (IE/edge's prior engine). 2. Red/green takes advantage of many things .net provides to be extremely efficient. For example structs. These are absent in js, making things much more costly. See the document on red-green ", "context": "", "use_case": "", "switched_from": "", "story": "Tree-sitter vs. Language Servers"}, {"id": 744687904, "item_id": 46542994, "url": "https://news.ycombinator.com/item?id=46542994", "by": "testdelacc1", "date": "2026-01-08", "stance": "recommend", "quote": "simply because of how good V8 is", "excerpt": "A benchmark of adding numbers doesn\u2019t tell you how it performs on real world websites and codebases. I wouldn\u2019t be surprised if JavaScript was still very competitive, simply because of how good V8 is, but I don\u2019t think we can conclude anything from your benchmark. Of course it is always possible to write highly optimised code. But that\u2019s not what people actually do, because of time, skill and maintenance constraints.", "context": "", "use_case": "JavaScript engine", "switched_from": "", "story": "Japanese electronics store pleads for old PCs amid ongoing hardware shortage"}, {"id": 744182865, "item_id": 46511429, "url": "https://news.ycombinator.com/item?id=46511429", "by": "soham_byte", "date": "2026-01-06", "stance": "recommend", "quote": "Titan Planet now use v8 to run js bundles no more boa", "excerpt": "Titan Planet now use v8 to run js bundles no more boa. It's boost the performance and speed of Titan Planet. http://titandocs.online happy coding !", "context": "", "use_case": "", "switched_from": "Boa", "story": "Show HN: Titan \u2013 JavaScript-first framework that compiles into a Rust server"}, {"id": 744159680, "item_id": 46509980, "url": "https://news.ycombinator.com/item?id=46509980", "by": "pjmlp", "date": "2026-01-06", "stance": "recommend", "quote": "V8 execution of JavaScript's for-of loops is fast", "excerpt": "A better point would be V8 execution of JavaScript's for-of loops is fast. We should not make assertions based on a language name, when there are so many implementations to chose from, https://zoo.js.org/", "context": "", "use_case": "", "switched_from": "", "story": "JavaScript's For-Of Loops Are Fast"}, {"id": 743978177, "item_id": 46498636, "url": "https://news.ycombinator.com/item?id=46498636", "by": "senfiaj", "date": "2026-01-05", "stance": "neutral", "quote": "If V8 produces different optimized codes for different loops", "excerpt": "Weird. If V8 produces different optimized codes for different loops, this might be true on some CPUs. But when I get 100% convergence when increasing the repeats, this becomes a bit suspicious. Also, it might be some timing difference related to initial warmup or some adjustments in V8 for specific CPUs (including some power saving). I also ran on Pixel 3a , both classic and for-of were 100%, foreach was ~9% (on Wind", "context": "", "use_case": "JavaScript engine optimization", "switched_from": "", "story": "JavaScript's For-Of Loops Are Fast"}, {"id": 743858369, "item_id": 46491148, "url": "https://news.ycombinator.com/item?id=46491148", "by": "simonw", "date": "2026-01-04", "stance": "neutral", "quote": "", "excerpt": "Right - I trust workerd in the context of Cloudflare because I know it has a team of people who's job it is to keep it secure who are on-call 24/7. The problem I have is that I'm just one person and I don't want to be on call 24/7 ready to react to sandbox escapes, so I'm hoping I can find a solution that someone else built where they are willing to say \"this is safe: you can feed in a string of untrusted JavaScript ", "context": "", "use_case": "", "switched_from": "", "story": "JavaScript engines zoo \u2013 Compare every JavaScript engine"}, {"id": 743843568, "item_id": 46490223, "url": "https://news.ycombinator.com/item?id=46490223", "by": "simonw", "date": "2026-01-04", "stance": "warn", "quote": "The challenge with V8 is finding a wrapper for it that doesn't come with a big warning NOT to use it as a sandbox for untrusted code", "excerpt": "The challenge with V8 is finding a wrapper for it that doesn't come with a big warning NOT to use it as a sandbox for untrusted code - here's the workerd one https://github.com/cloudflare/workerd?tab=readme-ov-file#warning-workerd-is-not-a-hardened-sandbox and here's the PyMiniRacer section: https://bpcreech.com/PyMiniRacer/architecture/#security-goals I looked at GraalVM but was put off by the licensing situation: h", "context": "", "use_case": "", "switched_from": "", "story": "JavaScript engines zoo \u2013 Compare every JavaScript engine"}]}