- Internal core has been changed from blocking, thread-per-connection to
non-blocking, asynchronous, one thread for all. - API modification for server creation and response creation. That allowed
keep-alive support for dynamic requests, boosting the embedded performance
to 100+ thousands requests per second on a single core
(as measured on my development MacBook laptop) - Unified handling of POST requests and Websocket requests by putting a
payload intoconn->content
,conn->content_len
attributes.
That simplified user code and eliminated the need ofmg_read()
,
since mongoose buffers all data prior to calling the callback - Keep-alive support is the default
- Dropped SSI support and throttling support
- Several configuraition parameters are gone:
cgi_environment
(replaced with MONGOOSE_CGI),protect_uri
(not useful)ssi_pattern
(SSI support is gone)throttle
(throttling support is gone)error_log_file
(not used)enable_keep_alive
(enabled by default)listening_ports
(renamed to listening_port)num_threads
(core has changed to single thread)put_delete_auth_file
(renamed to dav_auth_file)authentication_domain
(renamed to auth_domain)
- Due to the async, non-blocking nature of the core, few restrictions
are now in place:- user callbacks must not block
- POST and Websocket data are now buffered, and cannot be huge
- mongoose is now capable on listening on only one port