TigerBeetle and Synadia pledge $512k to the Zig Software Foundation
157 comments
·October 25, 2025eggy
In performing an assessment of which ecosystem and PL to use to develop our high-integrity automation software for mission-critical applications, we assessed Rust, Zig, and Ada/SPARK. Rust had the support behind it from a big corp., a passionate developer community, and some adoption by significant entities, but none with cyber-physical systems. And it has been interesting to see some developers leaving Rust for Zig for the sheer enjoyment of using it instead. Our software will be controlling machinery overhead and other close coupling with machinery and people. Rust does not have the legacy in these areas or the ecosystem to cover formal verification. Zig was considered, but was even more new than Rust, and had similar disadvantages as listed for Rust. SPARK, a relatively newer PL, a subset of Ada, has legacy in high-integrity, mission-critical applications, and formal verification tooling that along with human review, makes it the strongest choice to meet the government's latest push for such critical software, and the language though verbose, is low friction to learn and apply. I found Zig to be a great second choice, and look forward to both Rust and Zig's future. Glad to see Zig moving along since Andrew started it. Congrats Andrew and the team currently pulling this off!
chc4
https://ferrocene.dev/en/ is a Rust toolchain which has achieved some certifications for mission critical applications similar to Ada/SPARK.
7thaccount
Interesting to see this. I bought a book on Ada 2012 awhile back. Pretty cool stuff - especially with Spark.
The license model always made me uncomfortable for when you were using the commercial compilers though. Does this lock you into Spark forever?
tayo42
>leaving Rust for Zig for the sheer enjoyment of using it instead.
What do people find more enjoyable?
lukaslalinsky
In a way, it's a return to simpler times. I remember learning programming C and it was about programming computers, not abstract concepts. As languages got higher level abstractions, we lost touch with the computer. That's why programs are so bloated today. Zig respects that we are programming a computer, with concrete behaviours, it doesn't try to abstract things away, doesn't hide complexity, and yet gives you tools for managing it. That's why I enjoy it.
Klonoar
I truly do not understand why anyone would think Rust is abstracting things away.
Like, to be clear: if you want to develop in Zig because you like it for whatever reason, you should do that. There is no world, nor will there ever be a world, where there's "one language to rule them all". This comment should not be read as "you should write Rust instead".
I just don't find any of your descriptions of Zig to be things that Rust is guilty of. You can (mostly) write the same things in each language, ship a static binary, and your users would never know the difference. IME you are generally as "in touch with the computer" in Rust as you are in Zig.
oblio
Yet computers are abstract concepts :-)
And C is basically high level assembly for the PDP, which has little in common with x86, for example.
gorjusborg
Zig feels like a better C with modern tooling. It is a tool that works for me.
Rust feels like a better C++ with modern tooling. I am a tool that works for it.
surajrmal
Most people stop feeling like they are fighting with rust a few months into using it. The borrow checker is something that becomes second nature and you still use the same techniques that would please the borrow checker outside of rust because it's generally better program structure in many cases and avoids bugs. If you want to do something that you know us correct that rust normally doesn't allow, just use unsafe. It's not the end of the world. You don't need to resort to a different language to achieve that same result.
This isn't to say it's better or worse than zig. If you're developing software and zig works for your needs, go for it. I'd like to see it used on a 100+ person project to see how it might hold up to the problems that I tend to see in c++, which largely arise for people not knowing about constraints that are not tracked explicitly by the compiler. On projects with less people, this doesn't happen as often.
pyrolistical
This is what people don’t understand. Zig and Rust are not competitors. Rust is a better C++ but C was the good part of C++.
jandrewrogers
Rust needs stronger compile-time features and capabilities if it wants to be a better C++. This is critical functionality for many types of safety.
npalli
Rust is a worse C++ with modern tooling.
rishabhaiover
You're a poet, kind sir.
Ygg2
> It is a tool that works for me.
Is it? Or is it a tool that won't bug you when you make a mistake?
Programmers tend to, as Djikstra noted[1] confuse ease of programming with allowing unforced errors.
RexFactorem
[dead]
LexiMax
Some people enjoy the relative simplicity and straight forwardness of C, some folks enjoy the flexibility and zero cost abstractions C++ gives you.
Some people can appreciate both. I actually like both languages for different reasons and I don't really understand why they're consistently being pitted against each other. Language wars are... for lack of a more appropriate and less-crass term... stupid.
hnlmorg
> Language wars are... for lack of a more appropriate and less-crass term... stupid.
I couldn’t agree more!
tayo42
With limited time and mental energy and I woukd say the languages are fighting for attention. The war is over why should I pay attention and for territory in my head.
coldtea
Not having to care for the fucking borrow checker. And far fewer concepts. And faster compiles.
ozgrakkurt
I find it easier to develop low level code like file format, async io library and similar stuff in zig
lagniappe
Speaking for myself, the community is more humble and kind on the zig side, and their chats are more on-topic.
anymouse123456
They aren't even close.
Trying to write Rust as a noob feels like being in a blackout swamp, waist deep in muck, fighting through thick air and trying, but failing to run from danger. Being utterly constrained in every direction.
Writing Zig as a noob feels like having the clouds part to reveal a bright, sunny Spring clearing and suddenly being able to cover land in a cheerful group with clarity, purpose and focus.
[Edit] Of course, this is purely subjective, obviously a skill issue and YMMV
didibus
Kind of surprising, I could see why, but I find Zig more difficult than Rust, so ya, YMMV.
null
tkz1312
Zig is orders of magnitude more pleasant and enjoyable to use than Rust.
estebank
>>> Zig is more enjoyable than Rust
>> Why is that?
> Zig is more enjoyable than Rust
You didn't really leave the GP more informed than before.
IshKebab
I strongly disagree. I can see why you would want to use Zig, especially if you absolutely need complete low level code and only care about pretty decent memory safety (which is valid in many scenarios). But if those don't apply Rust is much nicer.
Stuff like string manipulation is almost as painful as it is in C.
littlestymaar
It's like saying bacon is better than cheese. I totally get why some people would feel that way, but it's far from a universal feeling.
Tastes are just subjective.
scuff3d
> In all these things, what impressed me most was Zig’s approach to safety when working with the metal. Not in terms of an on/off decision, but as a spectrum. Not aiming for 100% guarantees across 1 or 2 categories, but 90% and then across more categories. Not eliminating classes of bugs, but downgrading their probability. All while preserving the power-to-weight ratio of the language, to keep the language beautifully simple. - From TigerBeetles blog on this
Such an excellent summary. I've been trying to communicate this regarding the difference in Rust and Zigs approach to memory safety, and Joran does it so much better than I ever could.
wocram
Why is 90% enough?
CitrusFruits
I think the idea is that perfect is the enemy of good here and that getting from 90% to 100% involves tradeoffs that aren't actually worth it from a language ergonomics point of view.
bsder
What are you trading off to get from 90% to 100%?
How about compile speed? Are you willing to wait an extra second to get 100%? How about 10 seconds? A minute? 10 Minutes? An hour?
Rust is notoriously slow at compiling and people have been banging on it for a while. At some point, you have to accept that the language, itself, has properties that make compilation slow.
Ostatnigrosh
I'd probably agree with most in the comment section. Comparing Rust & Zig is not productive. I spent the last month familiarizing myself with Zig after having done a 2 years stint with Rust and Zig is a much younger language with a far smaller ecosystem to work with. If I were to reach for C i'd recommend Zig. If I were reaching for C++ then it would be Rust.
Both are fantastic languages and I hope to see them both evolve in years to come. Zig has a longer road ahead but it really is elegant and simple to work with.
jorangreef
Joran from TigerBeetle here!
Zig has changed my life, and our team, by making TigerBeetle possible. It's been an incredible journey these past 5 years, and excited that we can now pay it back (and forward!) to the Zig Software Foundation, also matching with my friend Derek Collison and Synadia in doing so.
Thanks to Andrew for creating something beautifully special for the world in Zig, and to all the Zig core team and communities.
If you don't yet donate to the foundation, please consider doing so: https://ziglang.org/zsf/
nafizh
How would you onboard a software engineer who doesn't know zig if you were to do so? Learning tips?
jorangreef
Thanks! I write about this briefly in the blog post, but the more detailed answer is there's no need: Zig's grammar is simple/explicit/powerful enough that they pick it up themselves in a weekend. Learning Zig is just not something we need to talk about with new hires, and we hire systems programmers from all backgrounds.
To be clear, we do invest in months of onboarding in terms of understanding the TigerBeetle code base. For example, matklad has recorded nearly a hundred hours' worth of IronBeetle episodes [0].
But I just noticed at one point that people were joining our team and never having any trouble with Zig. The question was just never being asked. Essential simplicity is a great benefit!
[0] https://www.youtube.com/playlist?list=PL9eL-xg48OM3pnVqFSRyB...
matklad
I personally learned Zig by reading https://ziglang.org/documentation/master/ and stdlib source code once I joined TigerBeetle. enums.zig and meta.zig are good places to learn, in addition to usual suspects like array_list.zig.
(though, to be fair, my Rust experience was a great help for learning Zig, just as my C++ knowledge was instrumental in grokking Rust)
dangoodmanUT
I’d be really curious to know if there have ever been major snags being such an early adopter of a language (relative to comparable language options)?
jorangreef
Zig has been great. If anything we could merge critical features (e.g. io_uring, @prefetch builtin and others) into Zig in days or hours instead of years. In hindsight, Zig exceeded expectations, and the quality was exceptional to begin with.
grg0
Yeah, that is a lot more insightful than Synadia's marketing spew, thanks.
The BDFL point is particularly interesting to me having followed C++ for almost two decades and having been disenfranchised by the inconsistency of the design. I am more of the belief now that a BDFL is the right model for programming language design, particularly one that isn't insular and listens to feedback, but upholds their vision for the language above all else.
dang
(this was originally a reply to https://news.ycombinator.com/item?id=45703746 before we merged the threads)
drfuchs
Real programmers would have donated $524,288. But seriously good news nonetheless.
ncruces
You can chip in remainder in soft monthly installments of $512 over two years.
drfuchs
Indeed. Take a gander at the last screenful of ziglang.org
jorangreef
We had to leave some room at the top for SpiralDB and ZML to get to the next power of two, or they'd have to raise the exponent. ;P
bryant
For those who don't intuitively think in base 2,
2¹⁹ bytes, or 512KiB.
benatkin
I'd prefer to express it in hexadecimals, and 1 would be 256 cents. So it would come out to be very slightly more, at 0x00030000.00 hexadollars, or 196608.00 hexadollars, or 50331648 cents – $503,316.48
I may have been looking at the binary year 2038 countdown :D https://retr0.id/stuff/2038/
rts_cts
This is great news! I do wish that they had push a little bit harder to get $524288 though
jorangreef
Thanks! We had to leave room at the top for the next power of two, or others would have to raise the exponent ;P
elthor89
Is nats not written in go? Or does this foreshadow a switch to zig?
galangalalgol
They have clients in many languages. But the zig repo is still just a placeholder. They often have bare bones servers in the languages too, like rust has one, but I think they are mostly for testing.
lukaslalinsky
I'll shamelessly plug this. I think this is the most complete NATS client for Zig, matching the official clients in API and features: https://github.com/lalinsky/nats.zig
In fact, working on this client prompted me to start working on another Zig project, asynchronous I/O framework, which I'll be integrating with the NATS client soon: https://github.com/lalinsky/zio
tm11zz
> We run a fuzzing fleet of 1,000 dedicated CPU cores 24/7.
that a lot
tazjin
Assuming they're being economical (and considering the level of thinking TigerBeetle seems to put into stuff - they probably are) this might be only a few beefy physical servers.
For them it seems safety and QA is a large part of the sales pitch, so that seems worth it.
jorangreef
Thanks! It's around 21 boxes, 48 cores each [1], and in Finland so there's natural efficient cooling.
Fun fact, Hetzner were surprised at the size of the order, and sent us an email to confirm. ;P
[1] https://x.com/TigerBeetleDB/status/1841089728935821674/quote...
femiagbabiaka
The principle of crashing on application violation makes it worth it I’d guess
lxe
I'm absolutely struggling to understand what Synadia even does. it's been an infuriating experience navigating through their marketing site. It's been minutes and I still don't understand what it is. What is NATS?
Edit: I had to google what NATS.IO is. The marketing site is infuriatingly useless. Please, can we stop doing this?
Edit: At the bottom on the footer it says compare NATS to Kafka. It took me to a page that requires me to enter my email, name, and a message in order to download the white paper. I flipped over my desk in rage.
atombender
NATS and Synadia's other tech is easy to understand. You're not the target demographic for the Synadia site. They're targeting enterprise.
You can find the NATS site here [1]. NATS is so flexible it's admittedly easy to get lost in what exactly it is or what it's good for. The easy explanation is it's a message broker that can let programs send and receive messages to each other. Unlike a message queue, it has no persistence. Clients can that express "interest" in a topic receive messages to that topic, but messages disappear if nobody listens to them. It's kind of like UDP without addresses. It's clustered and supports complicated topologies where clusters route messages to each other, and has a powerful ACL system for exposing clusters to unprivileged actors that shouldn't be given full access (which means you can easily make it multi-tenant). The closest comparable technology might be MQTT, and indeed NATS offers an MQTT mode.
NATS also has a bunch of higher-level stuff built on top of it: A Kafka-like "stream" feature called Jetstream, RPC, a key/value store, an object (blob) store, and so on. The NATS message bus is the core primitive that these features use.
[1] https://nats.io/
bruth
(disclaimer: I am the VP of Prod/Eng at Synadia)
NATS - An application connectivity technology (L7). It was originally designed for low-latency M:N messaging, and that is still true today. In 2018, native multi-tenancy, clustering options, etc. got introduced. The persistence subsystem (JetStream) was introduced in 2021. It has a completely different design than Kafka, but with overlapping use cases. For better or worse, we get compared to Kafka a lot and virtually everyone who engages realizes the advantages and opportunities. NATS is much more flexible for application use cases, for example, it provides KeyValue and ObjectStore abstractions on top of the core persistent stream. There are a plethora of other details, but that is the basic gist. Overall, it has a lot of batteries included for building everything from embedded applications to large scale cloud-to-edge systems.
Synadia - The founder (Derek) created NATS. We are the primary maintainers of the project. We build products and services on top of NATS including a global SaaS where you can sign up and use "hosted NATS" with additional features. We offer a BYOC model, one of which we manage for you, or a Kubernetes-based self-service one that you deploy yourself. We also support fully self-hosted for customers that need to run in their own data centers or at the edge.
Regarding the comment re: the website, there are improvements we have in the works. Happy to engage and help clarify anything that is confusing.
null
hmans
[dead]
webdevver
i asked gemini to investigate on my behalf, and it basically said that Synadia is to NATS what HiveMQ is to MQTT. seems fair enough.
thank goodness for llms to spare us the marketing drivel!
bruth
Unfortunately the LLM is leading you astray :)
IshKebab
I dunno why you're being downvoted. This is a pretty great use of LLMs in my experience. I also used it to tell me what the hell Databricks is.
Of course there's a chance it's hallucinating (more likely with this niche thing) but it's not like it's critical information anyway.
dangoodmanUT
> For each of our companies to donate $256,000 in monthly installments over the next two years, with Synadia matching TigerBeetle, for a total of $512,000
Why over 2 years?
Like VC investment, Id assume a lump sum up front allow them to move faster with that money (hiring the right people sooner, etc.)
I wonder if projects like this care more about predictability of income (e.g. not hiring people depending on future funding to sustain them)
Aurornis
I assume it’s being budgeted out of their monthly cash flow, not coming out of cash reserves.
> Id assume a lump sum up front allow them to move faster with that money (hiring the right people sooner, etc.)
On the other hand, the monthly payments mean they’re less likely to overcommit their spending up front.
If they’re hiring someone with twice-monthly paychecks, receiving the money up front doesn’t make much difference unless they want to hire based on projections of higher future donations, which is a risky move.
dangoodmanUT
Yeah the later is my thinking. Probably cashflow reasoning too.
SoftTalker
This is a donation, not an investment in the VC sense.
mikkupikku
Slow is smooth. Smooth is fast.
gethly
I heard that very recently in a movie, just cannot recall which one.
mikkupikku
It's popularly claimed to be a Navy SEAL saying. I have no idea if that's true, but I think it has some broad merit to many things, almost anything which benefits from careful planning or training. In this context, throwing a big lump sum of money all at once could pressure the developers to spend money / hire too fast without careful planning. Spreading the payments out could be the donor's way of saying they don't want radical hasty changes, they just want to help out in a way.
kapitar
Not a recent movie, but it was mentioned in Shooter, a Mark Wahlberg film from way back when
trenchpilgrim
Most businesses prefer to make payments monthly because it's easier on cash flow.
codegladiator
There is always a burden of deployment of assets
https://www.synadia.com/blog/synadia-tigerbeetle-zig-foundat...