- highly configurable, check out
lib/snowhttp.h - no mid-run memory allocations outside of wolfssl and potential cache refreshes
- multithreading
- tls session resumption (+ tickets) - sessions are cached at startup and refreshed on a timer
- dns caching
To build library as static:
$ makeTo build example executable:
$ make
$ make exampleAll built files are created by default in bin/
snow_global_t global = {}; // contains all data
// optional, if TLS session reuse is wanted
snow_addWantedSession(&global, "https://hostname.com");
snow_addWantedSession(&global, "https://hostname1.com");
snow_init(&global);
...
ev_run(EV_DEFAULT, loop_cb);
...
snow_destroy(&global);Requests can be made from loop_cb:
snow_do(&global, GET, "https://google.com/", http_cb, err_cb);See example.cpp.
snow_global_t global = {}; // contains all data
ev_loop loops[multi_loop_max]; // multi loop data
assignLoops(&global);
// optional, if TLS session reuse is wanted
snow_addWantedSession(&global, "https://hostname.com");
snow_addWantedSession(&global, "https://hostname1.com");
snow_init(&global);
snow_spawnLoops(&global); // creates threads
...
snow_joinLoops(&global); // joins threads
...
snow_destroy(&global);Requests can be made from the main thread, before snow_joinLoops:
snow_do(&global, GET, "https://google.com/", http_cb, err_cb);This software is distributed under a MIT license, see LICENSE.
No warranty is provided, use at own risk.