At the core of the facil.io framework are it's Simple Template Library (C STL) and this IO Core library (fio.h, fio.c).
The IO Core library follows an evented reactor pattern that allows easy management of sockets (fd), events and timers using epoll, kqueue or poll.
Some security measures and a user-land based buffer make it easy to send data as well as prevent issues related to fd recycling (by using a local uuid per connection rather than the fd).
The IO Core library also offers pub/sub services both for local code and for registered connections.
Documentation is available in the (auto-generated) fio.md file as well as online at facil.io.
Testing the IO Core library locally is easy using:
make test/coreThe GNU make command will compile and run any file in the tests folder if it is explicitly listed. i.e.,
make test/http # test an example (insecure) HTTP echo server.
make test/cpp # Test template compilation in a C++ file (no run)... may fail on some compilers.It is possible to use the same makefile to compile source code and static library code. See the makefile for details.
If you're submitting a PR, make sure to update the corresponding code slice (file) in the core_slices folder and add a note in the CHANGELOG.
Note that the master branch is unstable as it gets. Commits may get squashed, the branch may be overwritten (force push), etc'.
Also, contributions are subject to the terms and conditions set in the facil.io contribution guide.