SaaSHub helps you find the best software and product alternatives Learn more →
Top 23 C Networking Projects
-
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
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
-
cjdns
An encrypted IPv6 network using public-key cryptography for address allocation and a distributed hash table for routing.
-
minixfromscratch
Development and compilation setup for the book versions of MINIX (2.0.0 and 3.1.0) on QEMU
-
felix
Project Calico's per-host agent Felix, responsible for programming routes and security policy.
-
nope.c
WAFer is a C language-based software platform for scalable server-side and networking applications. Think node.js for C programmers.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
Then, in another terminal window, we use curl to hit the endpoint:
Project mention: Epoll: The API that powers the modern internet (2022) | news.ycombinator.com | 2024-01-11
Project mention: Epoll: The API that powers the modern internet (2022) | news.ycombinator.com | 2024-01-11
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.
Both TURN and STUN can be self hosted, the most popular project i have found is coturn
Project mention: A Curated List of Game Network Programming Resources | news.ycombinator.com | 2023-05-22
Project mention: The Hidden World Of Dumps Store | CVV Shops: The Lucrative World of Credit Card Fraud! | /r/darknetplan | 2023-07-09This sub is not about TOR and all the seediness that goes on there but rather about creating darknets, by which we/they mean mesh networks and encrypted networks using tools like https://github.com/cjdelisle/cjdns/
Most of the speed I believe is from using the server iodine https://github.com/boazsegev/iodine which is a wrapper around facil.io https://facil.io that is built using C.
Project mention: libonion or libhttpserver for embedding a webserver in a small application? | /r/cpp_questions | 2023-05-10libonion
Project mention: Global Socket – Connect like there is no firewall. Securely | news.ycombinator.com | 2024-04-30
Project mention: Ask HN: High-quality resources for writing complex systems software? | news.ycombinator.com | 2023-11-05Open BSD software source.
UNIX Systems Programming: Communication, Concurrency and Threads: Communication, Concurrency and Threads 2nd Edition by K Robbins and S. Robbins
minix from scrath [0]; linux from scratch[1];
[1] : https://www.linuxfromscratch.org/
[0] : https://github.com/o-oconnell/minixfromscratch
When using green threads/fibers/coroutines, an interesting technique to make signal handling safer is to run the signal handler asynchronously on a separate fiber/green thread. That way most of the problems of dealing with signals go away, and there's basically no limitation on what you can do inside the signal handler.
I've successfully used this technique in Polyphony [1], a fiber-based Ruby gem for writing concurrent programs. When a signal occurs, Polyphony creates a special-purpose fiber that runs the signal handling code. The fiber is put at the head of the run queue, and is resumed once the currently executed fiber yields control.
[1] https://github.com/digital-fabric/polyphony
C Networking related posts
-
Global Socket – Connect like there is no firewall. Securely
-
Caching RESTful API requests with Heroku’s Redis Add-on
-
Verified Curl
-
Kelsey Hightower: Developers, what marketing strategies work on you?
-
KCP – A TCP alternative optimized for latency
-
Open source at Fastly is getting opener
-
Apple curl security incident 12604
-
A note from our sponsor - SaaSHub
www.saashub.com | 5 May 2024
Index
What are some of the best open-source Networking projects in C? This list will help you:
Project | Stars | |
---|---|---|
1 | libcurl | 34,221 |
2 | libuv | 23,276 |
3 | KCP | 14,748 |
4 | libevent | 10,745 |
5 | Mongoose | 10,602 |
6 | coturn | 10,533 |
7 | GameNetworkingResources | 6,812 |
8 | cjdns | 5,138 |
9 | libwebsockets | 4,587 |
10 | frr | 3,018 |
11 | netcode.io | 2,373 |
12 | facil.io | 2,014 |
13 | Onion | 1,998 |
14 | miniupnp | 1,388 |
15 | gsocket | 1,334 |
16 | librg | 1,223 |
17 | minixfromscratch | 1,182 |
18 | netsniff-ng | 1,177 |
19 | felix | 921 |
20 | ENet-CSharp | 762 |
21 | nope.c | 692 |
22 | Polyphony | 651 |
23 | pig | 459 |
Sponsored