Elembuf is a library that allows writing efficient parsers and readers. It looks as if it were just a regular T[], making it work well with libraries and easy to use with slicing. To avoid copying, the buffer can only be at maximum one page long.

Internally it is a circular buffer with memory mirroring. The garbage collector should not be used for the buffer as it would remove the memory mapping functionality. In the future, work will be done to add support for a dynamic buffer that copies when resized and -betterC compatibility. It currently supports Windows, GlibC 2.27 and Posix systems.

You can create your own sources for the buffer, or you can directly write to the buffer. The project also comes with one example source: "NetSource", which can be used as a base for implementing the read interface of your own source, should you want to make one. The example source lacks major features and should only be used as a reference for your own source.

Code simplicity and ease of use are major goals for the project. More testing and community additions are needed. A good first contribution would be to add additional sources or fix current ones. Please Check it out on github and consider helping out: https://github.com/Cyroxin/Elembuf

Reply via email to