Hi, I'd like to introduce a new library, Libasyncd based on libevent.
Libasyncd is an embeddable event-driven asynchronous message server for C/C++. It supports HTTP protocol by default and you can add your own protocol handler(hook) to build your own high performance server. *GitHub: https://github.com/wolkykim/libasyncd <https://github.com/wolkykim/libasyncd>* Asynchronous way of programming can easily go quite complicated since you need to handle every possible things in non-blocking way. So the goal of Libasyncd project is to make a flexible and fast asynchronous server framework with nice abstraction that can cut down the complexity. For your quick reference, here's how it looks. int my_http_get_handler(short event, ad_conn_t *conn, void *userdata) { if (ad_http_get_status(conn) == AD_HTTP_REQ_DONE) { ad_http_response(conn, 200, "text/html", "Hello World", 11); return AD_DONE; // Keep connection alive. } return AD_OK; } int main(int argc, char **argv) { ad_log_level(AD_LOG_DEBUG); ad_server_t *server = ad_server_new(); ad_server_set_option(server, "server.port", "8888"); ad_server_set_option(server, "server.ssl_cert", "ssl.cert"); ad_server_set_option(server, "server.ssl_pkey", "ssl.pkey") ad_server_register_hook(server, ad_http_handler, NULL); // HTTP Parser is also a hook. ad_server_register_hook(server, my_http_get_handler, NULL); return ad_server_start(server); } I'd love to get your feedback. And I'm also looking for someone who's willing to work together. Thanks
