frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

After 27 years within budget Austria open 6thlongest railway tunnel in the world

https://infrastruktur.oebb.at/en/projects-for-austria/railway-lines/southern-line-vienna-villach/...
209•fzeindl•3h ago•87 comments

4 billion if statements (2023)

https://andreasjhkarlsson.github.io//jekyll/update/2023/12/27/4-billion-if-statements.html
199•damethos•5d ago•73 comments

SQLite JSON at Full Index Speed Using Generated Columns

https://www.dbpro.app/blog/sqlite-json-virtual-columns-indexing
21•upmostly•56m ago•2 comments

From text to token: How tokenization pipelines work

https://www.paradedb.com/blog/when-tokenization-becomes-token
32•philippemnoel•23h ago•1 comments

The tiniest yet real telescope I've built

https://lucassifoni.info/blog/miniscope-tiny-telescope/
159•chantepierre•6h ago•35 comments

Fedora: Open-source repository for long-term digital preservation

https://fedorarepository.org/
14•cernocky•58m ago•8 comments

The Tor Project is switching to Rust

https://itsfoss.com/news/tor-rust-rewrite-progress/
120•giuliomagnifico•1h ago•54 comments

GPT-5.2

https://openai.com/index/introducing-gpt-5-2/
1064•atgctg•20h ago•932 comments

Nokia N900 Necromancy

https://yaky.dev/2025-12-11-nokia-n900-necromancy/
376•yaky•14h ago•138 comments

Show HN: Tripwire: A new anti evil maid defense

https://github.com/fr33-sh/Tripwire
19•DoctorFreeman•1d ago•10 comments

Google de-indexed Bear Blog and I don't know why

https://journal.james-zhan.com/google-de-indexed-my-entire-bear-blog-and-i-dont-know-why/
256•nafnlj•13h ago•102 comments

Guarding My Git Forge Against AI Scrapers

https://vulpinecitrus.info/blog/guarding-git-forge-ai-scrapers/
75•todsacerdoti•6h ago•45 comments

Show HN: Autofix Bot – Hybrid static analysis and AI code review agent

10•sanketsaurav•16h ago•1 comments

What folk can do

https://folk.computer/guides/what-folk-can-do
18•luu•4d ago•10 comments

CRISPR fungus: Protein-packed, sustainable, and tastes like meat

https://www.isaaa.org/kc/cropbiotechupdate/article/default.asp?ID=21607
205•rguiscard•13h ago•116 comments

He set out to walk around the world. After 27 years, his quest is nearly over

https://www.washingtonpost.com/lifestyle/2025/12/05/karl-bushby-walk-around-world/
148•wallflower•4d ago•115 comments

Rivian Unveils Custom Silicon, R2 Lidar Roadmap, and Universal Hands Free

https://riviantrackr.com/news/rivian-unveils-custom-silicon-r2-lidar-roadmap-universal-hands-free...
331•doctoboggan•20h ago•453 comments

Training LLMs for Honesty via Confessions

https://arxiv.org/abs/2512.08093
13•arabello•3h ago•2 comments

The highest quality codebase

https://gricha.dev/blog/the-highest-quality-codebase
580•Gricha•3d ago•363 comments

Denial of service and source code exposure in React Server Components

https://react.dev/blog/2025/12/11/denial-of-service-and-source-code-exposure-in-react-server-comp...
305•sangeeth96•17h ago•190 comments

Octo: A Chip8 IDE

https://github.com/JohnEarnest/Octo
21•tosh•6d ago•2 comments

Smartphone without a battery (2022)

https://yaky.dev/2022-09-06-smartphone-without-battery/
53•MYEUHD•6h ago•16 comments

Programmers and software developers lost the plot on naming their tools

https://larr.net/p/namings.html
336•todsacerdoti•20h ago•444 comments

An SVG is all you need

https://jon.recoil.org/blog/2025/12/an-svg-is-all-you-need.html
283•sadiq•18h ago•114 comments

Spirograph style Lego drawing machine

https://jkbrickworks.com/simple-drawing-machine/
27•ensocode•4d ago•5 comments

BehindTheMedspeak: A Spinal Tap

https://bookofjoe2.blogspot.com/2025/10/behindthemedspeak-this-is-spinal-tap.html
3•surprisetalk•4d ago•0 comments

Auto-grading decade-old Hacker News discussions with hindsight

https://karpathy.bearblog.dev/auto-grade-hn/
629•__rito__•1d ago•259 comments

Litestream VFS

https://fly.io/blog/litestream-vfs/
323•emschwartz•20h ago•78 comments

Stoolap: High-performance embedded SQL database in pure Rust

https://github.com/stoolap/stoolap
91•murat3ok•13h ago•29 comments

Craft software that makes people feel something

https://rapha.land/craft-software-that-makes-people-feel-something/
312•lukeio•1d ago•154 comments
Open in hackernews

The Tor Project is switching to Rust

https://itsfoss.com/news/tor-rust-rewrite-progress/
115•giuliomagnifico•1h ago

Comments

epolanski•1h ago
If Rust helps with their pains and they like Rust this seems very sensible.

That's exactly why we have different languages and tools, because they adapt differently to different projects, teams and problems.

But as soon as you get into the silly "tool X is better period" arguments, then all the nuance of choosing the right tool for the job is lost.

dingdingdang•1h ago
Sensible take, thank you. When HN get these "our project: from x to y language" frontpage stories I am always thinking that it would be far more exciting with "our project: 38.2% smaller code base by optimizing our dependency use", "our project: performance optimized by 16.4% by basic profiler use" or similar!
jjgreen•1h ago
Complete rewrites are always a bad idea ... [mutters of agreement] ... except in Rust! [cheering]
dodomodo•1h ago
Comelete rewrite are not always bad, they are _just_ very costly. You just need to do cost benefit analsys and compare it with the cost and benefit of other actions.
lynndotpy•55m ago
Complete rewrites have been done before. They're not impossible tasks. C to C++ (like with fish), C++ to Rust (fish again, Tor, etc), Java to C# (something I've seen), C# to C++ (evernote), Blender Game Engine to Godot (many small cases), Godot to Lumberyard (something I've seen), Unity to Godot (many small cases), etc. And there are all the myriad rewrites within the same language, or across major breaking changes (like Python 2 to Python 3).

I think "you should never do a full rewrite" is something of a reactionary response to the juvenile idea new devs and interns get every now and then. But sometimes, a rewrite really is a good idea.

But in this case, per the announcement ( https://blog.torproject.org/announcing-arti/ ), the reasons are pretty convincing. The major reasons are, unsurprisingly, all around memory safety.

FieryMechanic•18m ago
The issue is that every other week there is a rewrite of something in Rust. I just do an eyeroll whenever I see that yet another thing is being rewritten in Rust.

I've tried compiling large projects in Rust in a VM (8GB) and I've run out of memory whereas I am sure a C/C++ large project of a similar size wouldn't run out of memory. A lot of this tooling I had to compile myself because it wasn't available for my Linux distro (Debian 12 at the time).

A lot of the tooling reminds me of NPM, and after spending a huge amount of my time fighting with NPM, I actually prefer the way C/C++/CMake handles stuff.

I also don't like the language. I do personal stuff in C++ and I found Rust really irritating when learning the language (the return rules are weird) and just gave up with it.

littlestymaar•51m ago
Opinions with “always” in them are always a bad idea.
norman784•44m ago
Well, an underrated aspect of the Rust rewrites, is that it's easy to publish and share official libraries from the projects that the community can use, something that is too hard in C land.
billy99k•16m ago
I worked at a startup where the original code base was outsourced to cheap developers and was riddled with security vulnerabilities.

A complete rewrite made sense.

robin_reala•12m ago
Fish did a complete rewrite in Rust, but they did it in the right way.

1. Rewrite each C file in Rust as a 1:1 mapping.

2. Rewrite the Rust to make it idiomatic.

3. Start making structural changes.

shevy-java•1h ago
Hmmmm.

My biggest gripe with the Tor project is that it is so slow.

I don't think merely moving to Rust makes Tor faster either. And I am also not entirely convinced that Rust is really better than C.

ericpauley•1h ago
There’s a fundamental trade-off between performance and privacy for onion routing. Much of the slowness you’re experiencing is likely network latency, and no software optimization will improve that.
dodomodo•1h ago
I believe that the slowness is a matter of the amount nodes in the tor network, not something that can be fixed solely by code changes.

No one is claiming the new version is faster, only that it is safer.

agumonkey•37m ago
completely agree but it could be added that a new language can sometimes help explore new ideas faster, in which case maybe the routing layer and protocol can see new optimizations
wat10000•35m ago
It’s important to remember that safety is the whole purpose of the thing. If Tor is slow, it’s annoying. If Tor is compromised, people get imprisoned or killed.
rpigab•1h ago
I had that problem too, very slow on network requests, just change the setting "num_relays_proxied" from 3 to 1 to make it blazingly fast.
kaoD•1h ago
If this is sarcastic you should probably add /s or someone might actually follow your "advice".
gldrk•36m ago
You don't always need both endpoints to be anonymous. If you want to access a hidden service that is legal in your country, or the relevant laws are never enforced, the advice may well be worth it.
deafpolygon•1h ago
You should preface this with some important information about what that does.

There are some trade-offs!

Changing that setting to 1 gives you weaker anonymity guarantees. Using multiple guards spreads your traffic across different IP addresses, making it harder for an adversary who controls a subset of the network to correlate your activity.

Reducing to a single guard concentrates all traffic through one point, increasing the chance that a hostile relay could observe a larger fraction of your streams...

willvarfar•58m ago
Then the single relay knows both who you are (your IP) and where you are going. This offers no anonymity against the relay itself.

3 relays is the goldilocks number for speed vs privacy. Using less is not a tradeoff the usual user of Tor should make.

1313ed01•56m ago
How is 3 so much better than 2, but 4 not so much better than 3?
willvarfar•45m ago
1 = no privacy from relay

2 = risk of collusion between relays

3 = goldilocks default

4 = ... actually, you have more attack surface and you are more susceptible to fingerprinting because everybody else is using 3, so you're timings etc help identify you

So the default is 3 and nobody ought change it! Use 3 like everybody else.

The exception is .onion sites. TOR actually deliberately defaults to 6 hops when accessing .oninon sites - 3 to protect you and 3 to project the site.

Surac•39m ago
That reminds me of the holy Handgranate of the Monty pythons
flipped•28m ago
There's no exit nodes for onions because there's nothing to exit to. Nothing beats anonymity of onions and it's design is well created.
nostrademons•40m ago
Knowing not so much about Tor but some about math: the number of nodes you need to compromise in order to de-anonymize a Tor user is exponential in the number of hops. Google says there are roughly 7000 Tor nodes, including 2000 guards (entry) and 1000 exit nodes. If you have a single hop, there's roughly a 1/1000 chance that you will connect to a single malicious node that can de-anonymize you, going up linearly with the number of nodes an attacker controls. If you have 3 hops, you have a 1 in 1000 * 7000 * 2000 = roughly 14 billion chance. 2 hops would give you 1 in 2 million, 4 hops would give you 1 in 1000 * 7000 * 7000 * 2000 = 98 trillion. In practical terms 1:14B is about the same as 1:98T (i.e. both are effectively zero), but 1:2M is a lot higher.
flipped•31m ago
There are currently ~9000 relays if you look at https://metrics.torproject.org/networksize.html. The current problem is the fact that majority of relays are in Germany and if you rotate your circuits enough, you'll also notice the same path. German govt has been very hostile towards Tor for a long time, they were also behind KAX17. We need more relays obviously but also in different regions.
throawayonthe•20m ago
because then there is at least one node that knows neither the source nor the destination of a request
sph•15m ago
The law of diminishing returns
flipped•36m ago
What's the point of having one relay? You're better off using a reputable VPN like mullvad or ivpn. Tor is the best you're gonna get for low latency anonymous overlay network. It's been studied and refined over the years.
derrida•3m ago
Yeah, um, if I am ok with 1 node, I mean - there's no need for Tor.

I am not sure this isn't a joke, or real.

GoblinSlayer•24m ago
With 3 proxies traffic circles around the planet 2 times, which takes light 1/4 second to travel. Response does it again, so 1/2 second in total. Light is slow.
flipped•22m ago
You meant Tor network, right? Sadly, making very fast anonymous overlay networks is extremely difficult. You either make it fast or don't sacrifice anonymity. I personally noticed that Tor network has significantly improved and is way faster since a few years. It's also not recommended to exit and if you religiously stay over onions, you increase your anonymity.
John23832•4m ago
I think this shows a misunderstanding of the purpose of TOR. It’s for privacy, not optimal latency for your video stream.
nurettin•1h ago
I think we will see more Rust adoption as code generation gets better.

Machines will generate all the code, test that it works according to spec, you only need a vague notion of what is succint (do you just implement some existing trait?), what is typical (do you use index based data structures? do you simply use a Box, do you need Rc? Where should you use Optional?, do you want to use RefCell to make it mutable and so on), what is concise (just macro expand?), what is the correct type to use so you can warn the machine to re-adjust itself.

Personally I don't use Rust, I don't want to learn everything about Rust. It is the new enterprise Java boilerplate BS of our time.

So instead of running people through that ordeal, let them write the specs and machines should write the verbose boilerplate so the code is so called "safe" and concise without giving up too much.

testdelacc1•1h ago
This isn’t a recent decision, which the title implies. This rewrite started in 2020, and they released Arti 1.0 in 2022. Check out the release post (https://blog.torproject.org/arti_100_released/) where they explain their rationale for the rewrite. They were unhappy with the state of the C codebase and couldn’t see a way to slowly refactor it. Their experience with Rust was positive for all the commonly cited reasons - if it compiles it works, good ecosystem leading to development velocity, better portability across operating systems, and attracting more contributors. They did say they weren’t happy at the time with binary sizes.

The change log in the arti repo (https://gitlab.torproject.org/tpo/core/arti/-/blob/main/CHAN...) shows a lot of recent development too- versions 1.6, 1.7 and 1.8 were released in the last 3 months and they talk about setting the foundations for larger features to come. All in all it seems like the decision worked out for the team.

pityJuke•45m ago
Yes, this is a complete exaggeration of a headline and should be flagged for that alone.

This has been a long running project, and the Tor team clearly took their time to make it, as opposed to being a spur-of-the-moment change.

iamnothere•41m ago
Arti is also designed to be embedded as a library in other apps, so messaging clients (for example) will be able to leverage the network without needing a correctly configured Tor daemon on the host.

The extra safety in the code base is nice, but this seems like a bigger deal.

N_Lens•1h ago
Rust - "I am inevitable"
fuzzfactor•41m ago
Rust never sleeps.

N. Young

agumonkey•31m ago
young and rustless ?
anthk•56m ago
Why not Go? It's more portable.
hu3•51m ago
and easier to learn.

and better funded.

and easier to find devs.

ramon156•43m ago
They both suck getting new devs for

Also, just because it's part of Google doesn't make go better funded. Theyd probably be fine killing go.

Definitely easier to learn though :P

FieryMechanic•8m ago
Go been around for quite a while now. It isn't going anywhere.
agumonkey•30m ago
i have no dog in the fight, but based on tor release schedule it seems to me that the team is very very talented and rust complexity is not a challenge for them
preisschild•51m ago
What do you mean? Rust supports far more platforms.

Also Rust has a lot more inherent safety features than go.

(I think Go is great and its my primary language)

superkuh•46m ago
In terms of compilation of programs Go is far, far easier than Rust. For Rust to compile a random Rust program on the internet one almost always has to have the absolutely latest out of repo compiler toolchain from curl rustup.whatever | sh. The normal 4 year release cycle is incompatible with rust development. For commercial use cases this doesn't matter. But for open source like the tor project it does.

That said, since they use Firefox this bridge has already been burned.

norman784•42m ago
AFAIK if the project has a rust-toolchain.toml[0] file, cargo will download the correct compiler for the project.

[0] https://rust-lang.github.io/rustup/overrides.html#the-toolch...

lynndotpy•45m ago
Don't Rust and Go build to mostly-statically-compiled binaries? (With the exception of a link to libc.) (This isn't a rhetorical question, this is something I don't know a lot about

I'd imagine the biggest cultural reason is that many Rust developers were C developers who had a reason to find something better, but still scoff at garbage collection, large runtimes, etc. They probably have a lot more Rust expertise in their circle.

Another technical reason is that they were trying to replace their C code with Rust in bits and pieces before they went with a full rewrite. I don't know about Go, but this is something ergonomically doable in Rust.

atq2119•3m ago
[delayed]
pezezin•22m ago
Portable to what? Rust works fine on all of today's popular platforms.

I see people complaining about Rust's lack of portability, and it is always some obsolete platform that has been dead for 20 years. Let's be serious, nobody is gonna run Tor on an old SGI workstation or Itanium server.

fithisux•23m ago
Rust is one of the natural choices for this kind of migration.

There are others like Go.

I think they made the choice based on ecosystem, performance and prior experience with C.