libmobile
Mongoose
libmobile | Mongoose | |
---|---|---|
1 | 34 | |
34 | 11,602 | |
- | 1.3% | |
2.9 | 9.4 | |
7 months ago | 4 days ago | |
C | C | |
GNU Lesser General Public License v3.0 only | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
libmobile
-
Coroutines in C
The "switch" method isn't too uncommon, but usually people have an init function and "state" pointer that's passed into the coroutine function. I've used this method a lot in embedded projects, where one coroutine was handling motor acceleration/deceleration while the other would simply tell it what direction to go, but I've also used it for networked libraries[1].
You don't really need to introduce macro hell for it to be manageable, though I've never found reading switch/case flow to be very enjoyable.
[1]: https://github.com/REONTeam/libmobile/blob/master/relay.c#L3...
Mongoose
-
13 Github Projects that Will Supercharge Your Development Journey in 2025 🚀
Stars: 11435 Author: cesanta Star the mongoose repository⭐
-
Sans-IO: The secret to effective Rust for network services
A long time ago I had "fun" implementing all sorts of network protocols with such an event based library on C: https://github.com/cesanta/mongoose
-
Coroutines in C
I've found myself at this webpage multiple times while trying to minimize the complexity of APIs in my C projects.
My conclusion for now is that C coroutines are something to be left to the implementer. For example: Mongoose (https://github.com/cesanta/mongoose) uses event callbacks to deal with asynchronousness. It is much more pleasant to wrap a library like this in whatever thread/task primitives your system has rather than try to integrate the mythical cross-platform c couroutine.
-
BCHS stack: BSD, C, httpd, SQLite
I remember using mongoose 15 years back. Today i would have considered mongoose(10k+ stars) which is also a mature c/c++ web server[1] if not the licence.
https://github.com/cesanta/mongoose/tree/master/examples
- New scalable, fault-tolerant, and efficient open-source MQTT broker
- Eu não tinha nada melhor pra fazer, aí comecei a escrever um servidor HTTP em C do zero usando winsock.
-
Experience using crow as web server
Alternatives at the low to medium level of abstraction include civetweb and mongoose, which have a common ancestor. Both of these appear to be C rather than C++, but seem to be production quality and well-documented. Another C library is cpp-httplib, which is probably too low-level for me.
-
libonion or libhttpserver for embedding a webserver in a small application?
Since this is only going to be used internally would Mongoose be worth considering?
-
Selling proprietary library
Here’s an example: https://mongoose.ws/
- [Cpp] Quelle bibliothèque de serveur Web C++ faut-il utiliser de nos jours ?
What are some alternatives?
rfcs - RFCs for changes to Rust
libwebsockets - canonical libwebsockets.org networking library
Bunki - A simple C coroutine library.
cpp-httplib - A C++ header-only HTTP/HTTPS server and client library
libcurl - A command line tool and library for transferring data with URL syntax, supporting DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, TFTP, WS and WSS. libcurl offers a myriad of powerful features
µWebSockets - Simple, secure & standards compliant web server for the most demanding of applications