Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    F

    Frank Denis

    00f.net · Personal blog · on HN since 2009

    Frank Denis, creator of libsodium, writes about WebAssembly runtimes, cryptography, Rust dependencies, and software security.

    Visit blogRSSHN submissions
    SecuritySystems & PerformanceLanguages & Compilers
    What HN says

    HN commenters recommend his WebAssembly safety essay and runtime benchmarks as helpful, and note he created libsodium, which a Tink maintainer says they would use.

    Stats for nerds
    60HN people shared it
    83linked in comments
    1.5Kstory points
    Jun 2026last shared
    2013people per year2026

    Top posts on HN

    1. 1
      Stop using low DNS TTLs
      2 people · 503 points · first shared 2019 · 158 comments on HN
    2. 2
      WebAssembly doesn’t make unsafe languages safe
      5 people · 161 points · first shared 2018 · 83 comments on HN
    3. 3
      It Doesn't Work
      2 people · 145 points · first shared 2021 · 148 comments on HN
    4. 4
      Measuring the overhead of WebAssembly using libsodium
      1 person · 131 points · first shared 2019 · 43 comments on HN
    5. 5
      Go Is the New Ruby
      1 person · 105 points · first shared 2019 · 59 comments on HN
    6. 6
      DNSCrypt – how expired certificates became a thing of the past
      1 person · 97 points · first shared 2019 · 13 comments on HN
    7. 7
      Where are the self-tuning systems?
      1 person · 80 points · first shared 2015 · 36 comments on HN
    8. 8
      IP address truncation fails at anonymization
      2 people · 43 points · first shared 2025 · 10 comments on HN
    9. 9
      We trust strangers' open source more than our colleagues'
      2 people · 22 points · first shared 2025 · 6 comments on HN
    10. 10
      The best WebAssembly runtime may be no runtime
      1 person · 19 points · first shared 2023 · 8 comments on HN

    What HN people wrote when they linked it

    • cryptbeMay 2020

      Disclaimer: I'm one of the maintainers of Tink.

      I'm not sure if NaCl itself is production ready, but I'm a great fan of libsodium. If I weren't working on Tink, I'd use libsodium for my personal projects. Did you know that Frank Denis [1] the creator of libsodium is not working full time on crypto or security? He's a professional photographer. I can't figure out how he manages to single-handedly maintain such a high-profile high-quality library as a side project. We have a team of full time cryptographers and engineers working on Tink, but we've struggled a lot.

      We started Tink because all existing libraries that we had at Google didn't meet our requirements.

      Business-wise, we need an open source library that can work on all major platforms that Google products run on including web, iOS, Android, Borg and GCP. There are many Google products that need crypto integration with external partners. While we can take care of the crypto implementation on our side, we found that many partners got it wrong. It'd be very nice if they can use the same library that we're using internally.

      We learned very early that a single ciphersuite wouldn't work for everybody. Some would need short ciphertext. Some would need speed. Some would need FIPS certified. We want a library that can support a wide range of options. It should be easy to add new options and remove old ones.

      Security-wise, we found that most libraries are either too high-level or too low.

      The latter ask users for…

    • eatonphilMar 2022

      I'm not too familiar with the state of wasm runtimes so this Frank Denis post/benchmark [0] was pretty helpful.

      tldr:

      > Are you looking for the best possible performance to build a “serverless” infrastructure? WAVM may be better a choice, combined with “snapshots” of the linear memory made after initialization, as done in the excellent FAASM.

      > For untrusted applications, and if you are into Rust, you may want to consider lucet and its unique ability to stop/resume/reschedule execution.

      > Are you looking for a one-runtime-to-rule-them-all thing for multiple components of your application, written in a variety of programming languages? wasmer will probably be the easiest to integrate.

      > Are you looking for a way to test the latest WebAssembly proposals? Check out wasmtime. Ditto if you need to run WebAssembly modules from Zig. wasmtime is fast, even on ARM CPUs, although I wish I could test on one of these fancy new Apple M1 machines.

      > Finally, if you need something simple, lightweight, that works everywhere, wasm3 is your friend.

      [0] https://00f.net/2021/02/22/webassembly-runtimes-benchmarks/

    • cfallinMar 2024

      There are some benchmarks of Cranelift-based Wasm VMs (Wasmtime) vs. LLVM-based Wasm VMs here: https://00f.net/2023/01/04/webassembly-benchmark-2023/

      The (perhaps slightly exaggerated but encouraging to me at least!) money quote there is:

      > That’s right. The cranelift code generator has become as fast as LLVM. This is extremely impressive considering the fact that cranelift is a relatively young project, written from scratch by a very small (but obviously very talented) team.

      In practice anywhere from 10%-30% slower maybe is reasonable to expect. Compiler microbenchmarks are interesting because they're very "quantized": for any particular benchmark, often either you get the right transforms and achieve the correct optimized inner loop, or you don't. So the game is about getting more and more cases right and we're slowly getting there.

      (disclosure: I was tech lead of Cranelift in 2020-2022)

    • vavrusaOct 2019

      Disclaimer: I work on 1.1.1.1. You might not consider your /24 as personally identifying, but others might. The original RFC discusses these problems fairly well (https://tools.ietf.org/html/rfc7871, Privacy notice and privacy considerations). Frank Denis also wrote a good summary on ECS (https://00f.net/2013/08/07/edns-client-subnet/). There's a multitude of ways to fix this - use a whitelist of nameservers to send ECS to to avoid spraying the source prefix everywhere, encrypt the whitelisted connections, or aggregate the source prefix into a largest covering server scope (e.g. if the client is in /24 but nameserver serves the same answer for /16, then using any address in the /16 would do). We're evaluating all of them as there's different trade-offs (see https://blog.mozilla.org/futurereleases/2019/04/02/dns-over-https-doh-update-recent-testing-results-and-next-steps/).

    • ncrucesNov 2023

      I don't have them at hand, will post them to the wiki when I get a chance.

      That said there's 2 aspects to SQLite performance: compute and IO.

      For compute, wazero's current compiler is pretty naive, so CPU bound benchmarks will show a significant degradation vs. native. The numbers in [1] are still mostly valid: you should expect a 4x hit compared to native (mattn, less compared to modernc). A new optimizing compiler is being designed, which I expect will make this roughly on par with modernc.

      In terms of IO, the biggest performance limitation is the lack of good WAL support. If you're doing something IO bound in rollback journal mode with normal synchronization, performance should be comparable, because it's dominated by the number of fsyncs. But WAL offers better performance in most cases.

      1: https://00f.net/2023/01/04/webassembly-benchmark-2023/

    • RustSupremacistNov 2025

      It depends on how you define supply chain attacks.

      Recently, there was an exploit discovered in an abandoned Rust package that was used by many other Rust projects, many unaware of it due to the sheer number of dependencies. Whether by negligence or malice, having a known vulnerability that permeates significant portions of the ecosystem is on the order of a supply chain attack.

      https://edera.dev/stories/tarmageddon

      Worse yet, independent research suggests that the state is arguably much worse: https://00f.net/2025/10/17/state-of-the-rust-ecosystem/

      Given projects that make the claim of switching to Rust to access new contributors, it remains to be seen how many of those new contributors are capable of being retained.

    Related

    Wasmer Blogmedium.com/wasmer26 people

    Wasmer 1.0

    Wasmer Blog
    Company · last shared 2024
    DHHworld.hey.com/dhh654 people

    The Framework Desktop is a beast

    DHH
    Personal · last shared 2026
    sunfishcodeblog.sunfishcode.online32 people

    Bugs in Hello World

    sunfishcode
    Personal · last shared 2025
    Nick Fitzgeraldfitzgeraldnick.com43 people

    Demangling C++ Symbols in Rust

    Nick Fitzgerald
    Personal · last shared 2024
    Steve Klabnikwords.steveklabnik.com284 people

    A Sad Day for Rust

    Steve Klabnik
    Personal · last shared 2026
    Nick Babcocknickb.dev15 people

    Replacing Elasticsearch with Rust and SQLite (2017)

    Nick Babcock
    Personal · last shared 2025
    Unlimited Noveltyunlimitednovelty.com42 people

    Node.js has jumped the shark

    Unlimited Novelty
    Personal · last shared 2023
    Stephen Diehlstephendiehl.com209 people

    What I Wish I Knew When Learning Haskell

    Stephen Diehl
    Personal · last shared 2026