← HOME - a blog about
xit RSS
██╗ ██╗██╗████████╗██╗ ██████╗ ██████╗
╚██╗██╔╝██║╚══██╔══╝██║ ██╔═══██╗██╔════╝
╚███╔╝ ██║ ██║ ██║ ██║ ██║██║ ███╗
██╔██╗ ██║ ██║ ██║ ██║ ██║██║ ██║
██╔╝ ██╗██║ ██║ ███████╗╚██████╔╝╚██████╔╝
╚═╝ ╚═╝╚═╝ ╚═╝ ╚══════╝ ╚═════╝ ╚═════╝
DEVLOG - WRITERGATE - October 9, 2025
In the last devlog, I mentioned that there was a lot more
work to do to update xit for
writergate. The fundamental
reader and writer interfaces in Zig are changing, and xit
contained many custom ones that needed to be redesigned with
the new interfaces in mind.
I started by updating xitdb in
this commit. Then I
updated xit itself to use the new interfaces starting with
this commit. It ended up being a lot of work but I can
finally say that xit has survived writergate.
As a bonus, xit got a lot faster. A benchmark I use went
from 8 seconds to 5 seconds on my machine -- a huge
improvement! I didn't try that hard to figure out what
caused it, but I think it's just due to better use of
buffering. While xit was always using buffering internally,
the changes for writergate really forced it to use buffering
consistently, because buffers are now built-in to the
interfaces.
There will be more breakages in Zig 0.16, but it looks
like it won't be as severe as writergate. I'm excited about
the upcoming Io interface, because it should make it trivial
to introduce multi-threading into xit; right now, checking
out a commit happens on a single thread so it's pretty slow.
I'm also just hoping to finally get back to regular feature
work...we'll see if that happens.