Hacker News

Top stories

Live mirror
30 storiesupdated just nowView source snapshot
  1. AI-generated posters don’t have to be horrible(john.hartnup.uk ↗)
    65comments
  2. Human brain is two separate organs, Stanford Medicine-led research finds(stanford.edu ↗)
    105comments
  3. If math is more than proof, we need to better celebrate the rest of it(terrytao.wordpress.com ↗)
    78comments
  4. GPT-6 Astra Solves a WWI German Radio Cipher(prinzai.com ↗)
    61comments
  5. Android 17 is the first since 3.x to add new APIs without releasing to the AOSP(grapheneos.social ↗)
    430comments
  6. "The Secret Life of Circuits" is here(coredump.cx ↗)
    17comments
  7. San Francisco Onion Futures Company(onionfutures.com ↗)
    71comments
  8. Apple M6 Pro Achieves the Highest Single-Core CPU Score in Geekbench 7(geekbench.com ↗)
    43comments
  9. Cloudflare Quick Tunnels(cloudflare.com ↗)
    285comments
  10. SDCC – Small Device C Compiler(sourceforge.net ↗)
    18comments
  11. Science Is Open Software(jepedersen.dk ↗)
    38comments
  12. How to Write with an LLM(sockpuppet.org ↗)
    336comments
  13. Saving another 100TB of RAM(cloudflare.com ↗)
    79comments
  14. Why building a Rust LSP is hard(rust-glancer.github.io ↗)
    32comments
  15. How OpenAI Used Its Own LLMs to Design Its Jalapeño Chip(ieee.org ↗)
    91comments
  16. You can run Git on object storage if you re-make packfiles(tigrisdata.com ↗)
    15comments
  17. Ctenophores: Wonders of Biology(quantamagazine.org ↗)
    6comments
  18. NASA-IBM Lunar Foundation open-Source Geospatial AI Model(usra.edu ↗)
    2comments
  19. The first new cat species discovered in 100 years(nationalgeographic.com ↗)
    105comments
  20. Communication by means of modulated Johnson noise(pnas.org ↗)
    discuss
  21. OpenJev(openjev.com ↗)
    267comments
  22. Goroutine Leak Profiles(go.dev ↗)
    4comments
  23. Show HN: Cactus Needle 3: 8-29MB automation models can match DeepSeek V4 Flash(cactuscompute.com ↗)
    89comments
  24. Photon-Emission-Guided Laser Fault Injection Enables RP2350 Secure Debug(ledger.com ↗)
    71comments
  25. Typesafe-computer-use drives a Mac toward a goal for 1/50th of a cent per step(github.com/awlevin ↗)
    52comments
  26. Cache-to-Cache: Direct Semantic Communication Between LLMs (2025)(arxiv.org ↗)
    13comments
  27. Warez: The Infrastructure and Aesthetics of Piracy (2021)(archive.org ↗)
    71comments
  28. Inside ZCode: Silently uploading your Git history to the cloud(ferstar.org ↗)
    100comments
  29. Cyclomatic Complexity in C#(ndepend.com ↗)
    24comments
  30. Veronese's Dogs(publicdomainreview.org ↗)
    1comments

I taught a bucket to speak Git

90 pointsby 2mo agotigrisdata.com
17 comments
2mo agoHN ↗

Came here for a five-gallon bucket hooked to Dulwich (archiving rain?), Slightly disappointed :)

Go Git and Dulwich and friends are indeed fun tech.

2mo agoHN ↗

Most of the pain here is the typical set of issues people run into trying to make S3 a filesystem as-is, common with S3FS-family approaches.

ZeroFS (https://github.com/Barre/zerofs) is 9P/NFS/NBD over S3 on an LSM. Point stock go-git, or just /usr/bin/git, at a mount and skip the gymnastics. Rename is a metadata op in the keyspace, so you get it atomic on any S3, no Tigris-specific X-Tigris-Rename needed.

Different point on the spectrum, but less square-peg, also most probably much, much faster (it works great on linux-sized repos) :)

2mo agoHN ↗

Author of the article here. I'm aware of ZeroFS and other similar approaches (such as something internal at Tigris that will become public at a later date), this was more of an experiment to see how far you can get with stuff I already had "on the shelf". I am going to be improving this a fair bit; I just need to plan out what I'm gonna work on and figure out the best times to stream it, etc.

2mo agoHN ↗

I wouldn’t call it gymnastics. The surprising part of the article was that Git itself is an object store that happens to use a filesystem for persistence, but an S3 bucket might actually be more suitable than a .git directory on POSIX.

2mo agoHN ↗

It makes sense, similar to how blob storage is a natural fit for a nix cache, where you have a giant flat space of many hash-address immutable directories/archives.

I think most of the pain documented in the article is just that git-the-implementation contains a lot of assumptions about it being a (local) filesystem that it is operating on, hence stuff like calling stat a ton of times, or doing the rename trick to get atomic behavior from a not-normally-atomic operation (updating a file in place).

If it were possible to define a "backing storage" API layer within git, it might be possible to move all the filesystem/posix-centric stuff to the other side of it and leave behind an interface that maps quite nicely to blob storage.

2mo agoHN ↗

Would probably be great to have ZeroFS backed PVs for the K8s folks :)

2mo agoHN ↗

This was really thought provoking — it made me realize that Git just happens to use a filesystem for persistence, but doesn’t necessarily have to. A POSIX filesystem might not even be the best way to store a git repo. Makes me wonder: what else could speak Git + POSIX? Redis? Postgres? IPFS is a fun one — it’s already content addressed.

2mo agoHN ↗

IPFS would be much better for something like LFS support than git repos itself. Git repos are very mutable bits of state and IPFS is best for immutable state. I'm aware of mutable IPFS pointers, but I think the best bet currently is to use immutable things for immutable objects and mutable things for mutable objects.

2mo agoHN ↗

I did something similar, though a full reimplementation of a git and git-lfs library in Elixir. Still a work in progress though as the S3 backend isn't quite complete and there are performance problems doing some git things through S3.

https://anvil.fangorn.io/fangorn/ex_git_objectstore

The documentation isn't quite correct, but it's getting there

2mo agoHN ↗

Great work, though I wish some of this work could be upstreamed to Gitea instead?

2mo agoHN ↗

Author of the post here. I'll talk with someone I know at Gitea. I don't think this is viable to upstream into Gitea, but there's only one way to find out!

2mo agoHN ↗

I’m not sure I understand what pain point this solves. What’s the value of doing this? Is it at a certain scale?