Besides it is:
- fully programmable and extensible with Python scripts
- has out of the box alerting
- support for capture files
- highly customizable regarding transporting events to output sinks
One thing to note about railcar is that it completely lacks the network stack, but it will probably be my "starting point" if someday I decide to evolve `rabbitc` into something "more serious".
Sure, there is definitely a lot of possible improvements for the code examples, like avoiding `clone` on a heap allocated strings, etc. I had some really odd issues when passing a statically allocated strings to the `libc` functions (the function's arguments from the previous calls ended up concatenated in the later function's invocations, just use `strace` to observe that behavior).
I probably could wrap in the `unsafe` block just the invocations to the system calls. I'm learning Rust and I wanted to give the post some freshness. There are already a plethora of examples in C.