-
Notifications
You must be signed in to change notification settings - Fork 253
Home
libonion is a lightweight library to help you to create webservers in C programming language. These webservers may be a web application, expanding you own application to have some web functionality, or a fully featured webserver if you want.
Normally a new handler is created that can serve the data, reading it from a file, processing some data... but there are many default handlers included with the most standard needs.
The name onion comes from that idea that the path transversal is done using many layers of handlers: on one layer you set the auth control, on another you check the server hostname (so you can have virtual hosts) on another a regular expression sends you to one or another path... Check on examples for how to do it.
Full API is described at http://coralbits.com/staticc/libonion/html/index.html . On this wiki there are some recipes on how to use different parts of the API.
If you plan to learn on how to use libonion, check first here the wiki, not centering on teh details, but the general ideas, then check the examples and when information on specific functions/structures is needed check the API documentation.
- Lightweight C library to add a webserver to an existing program, thought to be ABI compatible.
- Provides everything necessary to add full webserver functionality.
- ARM support
- SSL support via gnutls (http://www.gnu.org/software/gnutls/).
- Session support
- Pthread support
- PAM support
- Templating system based on Django's
- Keep-Alive via Content-Length and Chunk encoding.
- Of course normal HTTP methods: GET, POST, file upload support
- Console, syslog or custom logging.
- Compile Run Loop Development helper: acts like instantaneus apply of source code modification to your web server.
libonion is in active use on ARM projects and comes with several quite usefull example programs.
libonion is licensed under AGPLv3. This allows to use it on any AGPL project. If you need libonion for a project that does not fit this license, please check at http://www.coralbits.com, as a commercial license is also available.
Feel free to contact us at [email protected], or use the Issue tracker at github.