C Protocol

Open-source C projects categorized as Protocol | Edit details

Top 10 C Protocol Projects

  • GitHub repo KCP

    :zap: KCP - A Fast and Reliable ARQ Protocol

    Project mention: How feasible is this idea? Creating a battery run audio transmitter and receiver over TCP/IP | reddit.com/r/esp8266 | 2021-05-30

    I'd consider KCP protocol over TCP, it has 30-40% lower latency at the expense of 20% higher bandwidth.

  • GitHub repo libimobiledevice

    A cross-platform protocol library to communicate with iOS devices

    Project mention: Files disappeared | reddit.com/r/RemarkableTablet | 2022-01-14

    I'm not an iOS developer so I might be wrong there but I don't know how to do that unfortunately. I tried https://libimobiledevice.org/ few months ago without being able to get raw files on said devices except some photos with their metadata but not a full dump of the device.

  • Scout APM

    Less time debugging, more time building. Scout APM allows you to find and fix performance issues with no hassle. Now with error monitoring and external services monitoring, Scout is a developer's best friend when it comes to application development.

  • GitHub repo keepalived

    Keepalived

    Project mention: MicroK8s – Low-ops, minimal Kubernetes, for cloud, clusters, Edge and IoT | news.ycombinator.com | 2021-07-21
  • GitHub repo msquic

    Cross-platform, C implementation of the IETF QUIC protocol.

    Project mention: .plan | news.ycombinator.com | 2021-11-16
  • GitHub repo netcode.io

    A protocol for secure client/server connections over UDP

    Project mention: Why is client FPS limited by netcode? | reddit.com/r/starcitizen | 2022-01-10

    You may not be there yet with your developer skills but if you are curious you can have a look at the netcode source code. I'm not sure if they're still using it since the switch to Lumberyard and Amazon Services but it's a really good and strong codebase: https://github.com/networkprotocol/netcode

  • GitHub repo yojimbo

    A network library for client/server games written in C++

    Project mention: Handling acks during 1+ second packet loss with Glenn Fiedler's Reliable UDP Solution | reddit.com/r/gamedev | 2021-12-27

    I can't remember exactly how best to handle this (Glenn's yojimbo project is probably your best bet for a concrete implementation), but here's an idea: buffer and ACK some packets (e.g. up to N packets following your missing packet) and discard everything else (without ACK) until the missing one shows up. The protocol will then continuously try to send your missing packet, in addition to the packets you've intentionally not ACK'd. Once the missing packet shows up you can process it and any buffered packets up to your next missing packet and repeat.

  • GitHub repo lsquic

    LiteSpeed QUIC and HTTP/3 Library

    Project mention: LiteSpeed QUIC (LSQUIC) is an open-source implementation of QUIC and HTTP/3 | news.ycombinator.com | 2021-02-15

    > the word "thread" does not appear anywhere.

    because it doesn't use threads? The library is intended to be used inside an eventloop. I think the same also applies for other typical transport libraries - e.g. HTTP/2 or TLS ones.

    > Not sure why one would choose this over QUICHE.

    I think there are certainly reasons. lsquic seems a lot more optimized than quiche and most other libraries out there. It makes use of some pretty clever datastructures (e.g. https://github.com/litespeedtech/lsquic/blob/master/src/libl...), and likely has a drastically lower rate of heap allocations than other implementations. Some of those things - like the use of intrusive linked lists - are unfortunately not that easy to apply in Rust.

    I wouldn't be suprised if lsquic outperforms various other implementations - and if that's important to users it might be a reason to choose it (but as always: measure for your use-case).

    I personally also think Rust is the way to go for system level code. But I wouldn't dismiss a project for not using Rust. And this one at least has a fair set of unit-tests, so it looks to me a lot more sane than a lot of other C based projects.

  • SonarLint

    Deliver Cleaner and Safer Code - Right in Your IDE of Choice!. SonarLint is a free and open source IDE extension that identifies and catches bugs and vulnerabilities as you code, directly in the IDE. Install from your favorite IDE marketplace today.

  • GitHub repo ENet-CSharp

    Reliable UDP networking library

    Project mention: [Hobby // RevShare] Looking For Senior Multiplayer Developer (Unity) | reddit.com/r/INAT | 2021-09-11

    ENet

  • GitHub repo tinyproto

    Tiny Software Protocol for communication over UART, SPI, etc

    Project mention: Serial not sending full packets at once | reddit.com/r/esp32 | 2021-09-22

    Generally you have to use HLDC or something like this to transfer data over fragmented links. This might be a good start: https://github.com/lexus2k/tinyproto

  • GitHub repo bitproto

    The bit level data interchange format for serializing data structures.

    Project mention: Are there any libraries for defining and generating code for byte- or bit- aligned messaging or packet formats? | reddit.com/r/cpp | 2021-09-06

    I had a similar use case for embedded microcontroller work. Unfortunately, the only one that I found that lets you have bit-level control is bitproto. The problem with all these protocol formats is that they require generated sources to be included in your project at compile time.

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2022-01-14.

C Protocol related posts

Index

What are some of the best open-source Protocol projects in C? This list will help you:

Project Stars
1 KCP 10,594
2 libimobiledevice 4,708
3 keepalived 2,924
4 msquic 2,546
5 netcode.io 2,138
6 yojimbo 2,064
7 lsquic 922
8 ENet-CSharp 580
9 tinyproto 111
10 bitproto 55
Find remote jobs at our new job board 99remotejobs.com. There are 29 new remote jobs listed recently.
Are you hiring? Post a new remote job listing for free.
OPS - Build and Run Open Source Unikernels
Quickly and easily build and deploy open source unikernels in tens of seconds. Deploy in any language to any cloud.
github.com/nanovms