frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

A faster path to container images in Bazel

https://www.tweag.io/blog/2025-12-18-rules_img/
37•malt3•6d ago

Comments

odie5533•1h ago
Awful AI images everywhere. Can we not help ourselves?
CBLT•1h ago
Is my adblocker blocking them? I only saw the stack of tars in a coat. Didn't break the article's flow for me.
comex•18m ago
I also only saw that, but the text feels a bit fluffed out by AI as well, if I’m not mistaken.
Xophmeister•10m ago
It’s not. It’s been through several editing rounds. (I was one of the editors.) In theory, we don’t have a problem with AI generated content if it meets our high editorial requirements, but all Tweag technical blogs go through a rigorous, manual review and editing process to keep standards high.
jeffbee•1h ago
Funny that the article only obliquely references the compression issues. The OCI users that I have seen are using gzip due to inertia, while zstd layers have been supported for a while and a radically faster.
forrestthewoods•1h ago
Uhhh what? Isn’t the whole point of Bazel that it’s a monorepo with all dependencies so you don’t need effing docker just to build or run a bloody computer program?

It drives me absolute batshit insane that modern systems are incapable of either building or running computer programs without docker. Everyone should profoundly embarrassed and ashamed by this.

I’m a charlatan VR and gamedev that primarily uses Windows. But my deeply unpopular opinion is that windows is a significantly better dev environment and runtime environment because it doesn’t require all this Docker garbage. I swear that building and running programs does not actually have to be that complicated!! Linux userspace got pretty much everything related to dependencies and packages very very very wrong.

I am greatly pleased and amused that the most reliable API for gaming in Linux is Win32 via Proton. That should be a clear signal that Linux userspace has gone off the rails.

jakewins•1h ago
You’re converging a lot of ground here! The article is about producing container images for deployment, and have no relation to Bazels building stuff for you - if you’re not deploying as containers, you don’t need this?

On Linux vs Win32 flame warring: can you be more specific? What specifically is very very wrong with Linux packaging and dependency resolution?

forrestthewoods•46m ago
> The article is about producing container images for deployment

Fair. Docker does trigger my predator drive.

I’m pretty shocked that the Bazel workflow involves downloading Docker base images from external URLs. That seems very unbazel like! That belongs in the monorepo for sure.

> What specifically is very very wrong with Linux packaging and dependency resolution?

Linux userspace for the most part is built on a pool of global shared libraries and package managers. The theory is that this is good because you can upgrade libfoo.so just once for all programs on the system.

In practice this turns into pure dependency hell. The total work around is to use Docker which completely nullifies the entire theoretic benefit.

Linux toolchains and build systems are particularly egregious at just assuming a bunch of crap is magically available in the global search path.

Docker is roughly correct in that computer programs should include their gosh darn dependencies. But it introduces so many layers of complexity that are solved by adding yet another layer. Why do I need estargz??

If you’re going to deploy with Docker then you might as well just statically link everything. You can’t always get down to a single exe. But you can typically get pretty close!

dilyevsky•30m ago
> I’m pretty shocked that the Bazel workflow involves downloading Docker base images from external URLs. That seems very unbazel like! That belongs in the monorepo for sure.

Not every dependency in Bazel requires you to "first invent the universe" locally. Lots of examples of this like toolchains, git_repository, http_archive rules and on and on. As long as they are checksum'ed (as they are in this case) so that you can still output a reproducible artifact, I don't see the problem

forrestthewoods•11m ago
Everything belongs in version control imho. You should be able to clone the repo, yank the network cable, and build.

I suppose a URL with checksum is kinda sorta equivalent. But the article adds a bunch of new layers and complexity to avoid “downloading Cuda for the 4th time this week”. A whole lot of problems don’t exist if they binary blobs exist directly in the monorepo and local blob store.

It’s hard to describe the magic of a version control system that actually controls the version of all your dependencies.

Webdev is notorious for old projects being hard to compile. It should be trivial to build and run a 10+ year old project.

cyberax•47m ago
I'm struggling with the caching right now. I'm trying to switch from the Github actions to just running stuff in containers, and it works. Except for caching.

Buildkit from Docker is just a pure bullshit design. Instead of the elegant layer-based system, there's now two daemons that fling around TAR files. And for no real reason that I can discern. But the worst thing is that the caching is just plain broken.

klysm•37m ago
The layers are tar files, I’m confused what behavior you actually want that isn’t supported.
cyberax•25m ago
The original Docker (and the current Podman) created each layer as an overlay filesystem. So each layer was essentially an ephemeral container. If a build failed, you could actually just run the last successful layer with a shell and see what's wrong.

More importantly, the layers were represented as directories on the host system. So when you wanted to run something in the final container, Docker just needed to reassemble it.

Buildkit has broken all of it. Now building is done, essentially, in a separate system, the "docker buildx" command talks with it over a socket. It transmits the context, and gets the result back as an OCI image that it then needs to unpack.

This is an entirely useless step. It also breaks caching all the time. If you build two images that differ only slightly, the host still gets two full OCI artifacts, even if two containers share most of the layers.

It looks like their Bazel infrastructure optimized it by moving caching down to the file level.

Show HN: Minimalist editor that lives in browser, stores everything in the URL

https://github.com/antonmedv/textarea
49•medv•52m ago•18 comments

Fabrice Bellard: Biography [pdf]

https://www.ipaidia.gr/wp-content/uploads/2020/12/117-2020-fabrice-bellard.pdf
69•lioeters•2h ago•12 comments

European Majority favours more social media regulation

https://yougov.co.uk/technology/articles/53241-european-political-monthly-where-do-europeans-stan...
23•snowpid•1h ago•14 comments

Show HN: Vibium – Browser automation for AI and humans, by Selenium's creator

https://github.com/VibiumDev/vibium
92•hugs•2h ago•47 comments

When Compilers Surprise You

https://xania.org/202512/24-cunning-clang
159•brewmarche•7h ago•61 comments

My 2026 Open Social Web Predictions

https://www.timothychambers.net/2025/12/23/my-open-social-web-predictions.html
48•todsacerdoti•4h ago•30 comments

A faster path to container images in Bazel

https://www.tweag.io/blog/2025-12-18-rules_img/
37•malt3•6d ago•13 comments

Some Epstein file redactions are being undone

https://www.theguardian.com/us-news/2025/dec/23/epstein-unredacted-files-social-media
873•vinni2•1d ago•687 comments

Beijing is enforcing tough rules to ensure chatbots don’t misbehave

https://www.wsj.com/tech/ai/china-is-worried-ai-threatens-party-ruleand-is-trying-to-tame-it-bfdc...
15•bookofjoe•29m ago•3 comments

Looking for Decent Conversation?

41•kmstout•1h ago•3 comments

Qntm's Power Tower Toy

https://qntm.org/files/knuth/knuth.html
5•ravenical•4d ago•0 comments

Researchers achieved 1,270 Wh/L in an anode-free lithium metal battery

https://postech.ac.kr/eng/research/research_results.do?mode=view&articleNo=43617&title=Anode-Free...
72•giuliomagnifico•2h ago•32 comments

X-ray: a Python library for finding bad redactions in PDF documents

https://github.com/freelawproject/x-ray
638•rendx•22h ago•108 comments

Avoid Mini-Frameworks

https://laike9m.com/blog/avoid-mini-frameworks,171/
83•laike9m•8h ago•71 comments

Fabrication Techniques Using Myco-Materials

https://encyclopedia.pub/entry/27602
8•andsoitis•2d ago•1 comments

Making a game on a custom bytecode VM in 7 days and 3kB

https://laurent.le-brun.eu/blog/making-a-game-on-a-custom-bytecode-vm-in-7-days-and-3kb
59•laurentlb•5d ago•8 comments

I'm returning my Framework 16

https://yorickpeterse.com/articles/im-returning-my-framework-16/
77•YorickPeterse•7h ago•98 comments

Games’ affordance of childlike wonder and reduced burnout risk in young adults

https://games.jmir.org/2025/1/e84219/
109•azalemeth•6h ago•91 comments

The Port I couldn't Ship

https://ammil.industries/the-port-i-couldnt-ship/
84•cjlm•6d ago•41 comments

Spice: A 40-year old open-source success story (2011)

https://www.edn.com/spice-a-40-year-old-open-source-success-story/
8•stmw•3h ago•1 comments

AMD entered the CPU market with reverse-engineered Intel 8080 clone 50 years ago

https://www.tomshardware.com/pc-components/cpus/amd-first-entered-the-cpu-market-with-reverse-eng...
126•ksec•6h ago•60 comments

Unifi Travel Router

https://blog.ui.com/article/travel-in-style-unifi-style-unifi-travel-router
425•flurdy•20h ago•366 comments

LVM Thin Provisioning (2016)

https://storageapis.wordpress.com/2016/06/24/lvm-thin-provisioning/
15•indigodaddy•2d ago•3 comments

The e-scooter isn't new – London was zooming around on Autopeds a century ago

https://www.ianvisits.co.uk/articles/the-e-scooter-isnt-new-london-was-zooming-around-on-autopeds...
107•zeristor•12h ago•91 comments

Nabokov's guide to foreigners learning Russian

https://twitter.com/haravayin_hogh/status/2003299405907247502
201•flaxxen•19h ago•361 comments

Show HN: LazyPromise = Observable – Signals

https://github.com/lazy-promise/lazy-promise
23•ivan7237d•5d ago•4 comments

Fabrice Bellard Releases MicroQuickJS

https://github.com/bellard/mquickjs/blob/main/README.md
1318•Aissen•1d ago•502 comments

Why We Abandoned Matrix (2024)

https://forum.hackliberty.org/t/why-we-abandoned-matrix-the-dark-truth-about-user-security-and-sa...
159•Flere-Imsaho•5h ago•124 comments

Permission Systems for Enterprise That Scale

https://eliocapella.com/blog/permission-systems-for-enterprise/
73•eliocs•10h ago•28 comments

Microsoft Agent Framework

https://learn.microsoft.com/en-us/agent-framework/overview/agent-framework-overview
33•mooreds•2h ago•20 comments