Hacker News

Top stories

Live mirror
30 storiesupdated just nowView source snapshot
  1. Human brain is two separate organs, Stanford Medicine-led research finds(stanford.edu ↗)
    74comments
  2. If math is more than proof, we need to better celebrate the rest of it(terrytao.wordpress.com ↗)
    40comments
  3. GPT-6 Astra Solves a WWI German Radio Cipher(prinzai.com ↗)
    42comments
  4. San Francisco Onion Futures Company(onionfutures.com ↗)
    62comments
  5. Android 17 is the first since 3.x to add new APIs without releasing to the AOSP(grapheneos.social ↗)
    404comments
  6. Apple M6 Pro Achieves the Highest Single-Core CPU Score in Geekbench 7(geekbench.com ↗)
    15comments
  7. Typesafe-computer-use drives a Mac toward a goal for 1/50th of a cent per step(github.com/awlevin ↗)
    43comments
  8. Cloudflare Quick Tunnels(cloudflare.com ↗)
    278comments
  9. SDCC – Small Device C Compiler(sourceforge.net ↗)
    17comments
  10. Science Is Open Software(jepedersen.dk ↗)
    36comments
  11. You can run Git on object storage if you re-make packfiles(tigrisdata.com ↗)
    12comments
  12. Why building a Rust LSP is hard(rust-glancer.github.io ↗)
    31comments
  13. How to Write with an LLM(sockpuppet.org ↗)
    324comments
  14. Saving another 100TB of RAM(cloudflare.com ↗)
    70comments
  15. Ctenophores: Wonders of Biology(quantamagazine.org ↗)
    5comments
  16. How OpenAI Used Its Own LLMs to Design Its Jalapeño Chip(ieee.org ↗)
    85comments
  17. NASA-IBM Lunar Foundation open-Source Geospatial AI Model(usra.edu ↗)
    2comments
  18. The first new cat species discovered in 100 years(nationalgeographic.com ↗)
    104comments
  19. OpenJev(openjev.com ↗)
    262comments
  20. Goroutine Leak Profiles(go.dev ↗)
    2comments
  21. Show HN: Cactus Needle 3: 8-29MB automation models can match DeepSeek V4 Flash(cactuscompute.com ↗)
    88comments
  22. Photon-Emission-Guided Laser Fault Injection Enables RP2350 Secure Debug(ledger.com ↗)
    69comments
  23. Minimal Phone 2(minimalcompany.com ↗)
    220comments
  24. Cache-to-Cache: Direct Semantic Communication Between LLMs (2025)(arxiv.org ↗)
    12comments
  25. Veronese's Dogs(publicdomainreview.org ↗)
    discuss
  26. Suppress vulnerabilities applying Kubernetes context to scans(github.com/alegrey91 ↗)
    1comments
  27. Warez: The Infrastructure and Aesthetics of Piracy (2021)(archive.org ↗)
    61comments
  28. Inside ZCode: Silently uploading your Git history to the cloud(ferstar.org ↗)
    98comments
  29. Cyclomatic Complexity in C#(ndepend.com ↗)
    19comments
  30. Stepfun Step 5 Preview (LLM): On AA Pareto frontier(artificialanalysis.ai ↗)
    2comments

Deno, a secure TypeScript runtime using V8 and Go

157 pointsby 8y agogithub.com
39 comments
8y agoHN ↗

This is from the creator of node. Is that you?

I was playing with v1 of this project (the non-TS one). Super excited to see progress on it. What are your plans?

8y agoHN ↗

Worth noting, this is from the creator of Node.js, Ryan Dahl (not me - just sharing). The project is in very early stages, but considering it's from Ryan... it's definitely a project to keep an eye on.

8y agoHN ↗

Not exactly sure why you would want to provide JavaScript scripting for Go. Go has different concurrency primitives and a different threading model, and that threading model is one of the biggest selling points of Go.

I highly doubt this would be "the next node", if that is the intention. If you want to use Go, just use Go.

8y agoHN ↗

You can use it as a scripting language for your app. For example, a go binary with customizable hooks scripted in JS. That way anyone who knows JS can customize the binary for their specific use case.

8y agoHN ↗

Like openresty/Nginx with Lua integration. JavaScript is way more popular than Lua, so this have wide possibilities..

8y agoHN ↗

I thought the whole point of Show HN was for the creator to post their own project so that we can then talk to them about it.

It doesn't make sense to create Show HN for any ol project.

8y agoHN ↗

Is that the case? I thought it might have been, but then took a gander at the "Show" tab and noticed other people were clearly submitting stuff with the [Show HN] prefix when they weren't the original author.

Apologies if I screwed up. Definitely not trying to take credit for Ryan's work.

8y agoHN ↗

I'm pretty sure it is for showing your own work, but I wouldn't worry about it. The "Show" label is relatively minor, and this is certainly an interesting project to share!

There's a link to the rules/guidelines at the top of the "show" page:

https://news.ycombinator.com/showhn.html

Show HN is for something you've made that other people can play with. HN users can try it out, give you feedback, and ask questions in the thread.

8y agoHN ↗

Thanks for the explanation, won't make the same mistake twice, this was my first submission ever on HN.

8y agoHN ↗

Show HN's definitely have a prestige because we think it's the author's debut of the project, feel like we're helping out a community member, and expect them to be fielding answers in the comments.

Else everything is a Show HN. Like Show HN: Google's new privacy policy. ;)

8y agoHN ↗

Yep, that's definitely the case. It's not the end of the world, but, generally, don't use "Show HN" to highlight work that isn't yours.

8y agoHN ↗

Is this to add a scripting language to Go, like Lua is to Redis? It's a little unclear.

8y agoHN ↗

It would seem that the goal is to be modernized node that defaults to Typescript instead of Javascript and uses vgo-style package management instead of npm (or similar).

8y agoHN ↗

What kind of performance hit do you incur on something like file read serializing in and out of protobuf? Also, what is the problem this is trying to solve when it says "secure"? Obviously the code is not that secure because TypeScript is a bit loose on purpose (so, why TypeScript and not just a Go sandbox?). From reading, it seems to solve a problem of restricting local system access, so it's going to run unprivileged code? Surely there are many other exploitation factors such as running up the CPU...the primary use case would be ideal to help me understand.

8y agoHN ↗

Surely there are many other exploitation factors such as running up the CPU...the primary use case would be ideal to help me understand.

You're probably running untrusted JavaScript in your browser right now. The difference between the V8 in Node and the V8 in your browser is that one is heavily locked down and the other can do essentially whatever the OS lets it.

If you have untrusted code to run, you can eliminate a whole class of security concerns by just not having a way for the code to do those things (i.e., making syscalls it shouldn't, forking, reading and writing to the disk or network, etc.). Sure, resource use can be an issue, but that's a problem that's more easily solvable further up the stack with VMs or containers. Just putting an instance of Node running untrusted code in a VM doesn't solve much, since the mechanism whereby you give it input and collect output can be manipulated by the untrusted code itself.

By making the runtime secure, you get the security of the browser (i.e., being able to visit a website without having to wipe your machine), but designed to run in a server environment.

8y agoHN ↗

but that's a problem that's more easily solvable further up the stack with VMs or containers.

Everyone keeps saying this, let containers handle cpu/heap but I keep asking myself, is it really optimal?

8y agoHN ↗

I mean, it certainly depends. But relying on your interpreter to manage CPU scheduling and memory use is almost certainly less ideal than letting your OS/hypervisor do that for you.

8y agoHN ↗

README doesn't specify, so I'll ask: does anyone know how it supports TS? Does it just strip out all the TS stuff and pipe it into the parser?

8y agoHN ↗

looks like it is using the typescript API to compile the TS code at runtime

8y agoHN ↗

It seems to me what it means is that all builtin functions and objects have TS declarations from the start.

8y agoHN ↗

Finally, golang gets user accessible generics.

8y agoHN ↗

Mmm. Some may find that scary; I'd make it a link to an issue explaining/tracking what exactly causes it.

8y agoHN ↗

Roadmap suggests it has something to do with source maps?

8y agoHN ↗

Just realized the creator just scrambled the word "node" to have a new name.

8y agoHN ↗

Can someone compare it with ts-node?

If I get it right, ts-node is just a transpiler, but deno runs "proper" ts?

8y agoHN ↗

I guess the idea is to use URL's for importing packages. And have an extra security layer in the runtime.

I've done some concept/prototype for this but in the browser, and the main complaint is that it takes a few extra ms the first time you run the program. But as this is meant for servers and not impatient users, the extra startup time should not be a big issue.

8y agoHN ↗

Importing URLs is how ES modules work afaik

8y agoHN ↗

Right, the pluggable Loader spec [1] can keeps getting kicked down the road, and the Browsers haven't agreed yet on Node-style or non-URL-based loading. To the Browsers, URLs "just work" and is how they've always done things, and figuring out Node-like package boundaries or mapping package names to URLs hasn't seemed like a priority to them yet.

[1] https://github.com/whatwg/loader

8y agoHN ↗

Binary size 55 meg, compared to Node's 30. Is this an artifact of Go's "dynamic linking considered harmful" approach or does it have some additional functionality I'm missing?

8y agoHN ↗

Go's "dynamic linking considered harmful" approach

If anything this is only partially true: "Package plugin implements loading and symbol resolution of Go plugins."

https://golang.org/pkg/plugin

8y agoHN ↗

What is this? A Node.js runtime equivalent for TypeScript? But written in Go and V8?

Is it single threaded, non-blocking IO? Or will it more closely aligned with Go coroutines? i.e. do I have to deal with callbacks and/or async/await?

8y agoHN ↗

Looks like it's aiming to be async/await compliant but dunno how that is implemented.