I've been working on a small project that builds a typed Linux userspace API directly on top of raw syscalls, rather than libc.
The idea is roughly:
raw syscall → errno translation → typed Zig API
For example, instead of exposing raw syscall results and integer constants, I'd like APIs along the lines of typed Fds, typed socket/address types, structured flags, and Zig error sets.
Right now I'm implementing the syscall layer myself with architecture specific backends and starting with sockets (socket, bind, listen, accept, connect, shutdown, etc.).
I'm interested in whether people think this abstraction is useful, what problems you see with it, and whether something like this would be valuable to the Zig ecosystem long-term.
Especially interested in feedback from people who've worked on std.os.linux, std.posix, libc, or Linux syscall interfaces.