Skip to content
/ libsagui Public
forked from risoflora/libsagui

–– an ideal C library to develop cross-platform HTTP servers.

License

Notifications You must be signed in to change notification settings

sj/libsagui

 
 

Repository files navigation

Build Status

Overview

Sagui is an ideal C library to develop cross-platform HTTP servers. Its core has been developed using the GNU libmicrohttpd, uthash and GnuTLS, that's why it is so fast, compact and useful to run on embedded systems.

Features

  • Requests processing through:
    • Event-driven - single-thread + main loop + select
    • Threaded - one thread per request
    • Thread pool - thread pool + select
  • HTTPS support using GnuTLS
  • Basic authentication
  • Upload/download streaming by:
    • Payload - for raw data transferring as JSON, XML and other
    • File - for large data transferring as videos, images, binaries and so on
  • Dynamic strings (makes it easy strings operations in C)
  • String map (fast key-value mapping)
  • Fields, parameters, cookies, headers under hash table structure
  • Several callbacks for total library customization

Versioning

Starting from the version 1.0.0, Sagui follows the SemVer rules regarding API changes with backwards compatibility and stable ABI across major releases.

Licensing

Sagui is released under GNU Lesser General Public License v3.0. Check the LICENSE file for more details.

GNU Lesser General Public License v3.0

Documentation

The documentation has been written in Doxygen and is available in HTML and PDF.

Building/installing

Check the BUILD.md for instructions to build the library, examples, tests and documentation, then, follow the steps in INSTALL.md to install the library from sources on your system.

Contributing

Sagui is totally open source and would not be possible without our contributors. If you want to submit contributions, please fork the project on GitHub and send a pull request. You retain the copyright on your contributions. If you have questions, open a new issue at the issues page. For donations to support this project, please click the botton below.

Support this project

Support

This project is completely self-explanatory, but, if you need a consulting service to integrate it on your project, contact us.

About

–– an ideal C library to develop cross-platform HTTP servers.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 86.9%
  • CMake 13.1%