facil.io's core library (the fio.h
and fio.c
files) is a stand alone two-file library, which can be easily used in different projects.
However, there are many tasks that are common to applications that need an evented networking library such as facil.io.
These bundled extensions to the core library provide common functionality. They aren't required and can be safely deleted without effecting the core library.
The following extensions come bundled along with facio.io:
The TLS (fio_tls
) extension for adding SSL/TLS support (requires 3rd party libraries).
The CLI (fio_cli
) extension for handling command line arguments.
The FIOBJ
extension - this extension defines dynamic soft types and JSON helpers, making it easier to handle network bound information which often contains mixed types.
The http
extension - this compound module is everything HTTP and it requires the FIOBJ extension.
The websockets
extension - this is part of the HTTP module and extends it to support Websocket connections.
The redis
extension adds Redis connectivity to the core pub/sub service, making horizontal scaling a breeze.