bitproto
yojimbo
bitproto | yojimbo | |
---|---|---|
3 | 5 | |
115 | 2,387 | |
- | 0.6% | |
5.1 | 8.8 | |
4 days ago | about 1 month ago | |
C | C | |
BSD 3-clause "New" or "Revised" License | BSD 3-clause "New" or "Revised" License |
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.
bitproto
-
Are there any libraries for defining and generating code for byte- or bit- aligned messaging or packet formats?
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.
- Show HN: Bitproto – bit level data format for serializing data structures
- The bit level data interchange data format for serializing data structures.
yojimbo
-
Multiplayer Networking Solutions
yojimbo/ netcode/ reliable, all developped by Glenn Fidler, author of GafferOnGames
-
"Move all" feature added in inventory. In your face little fudsters. Gaming revolution incoming!
They really just didn't know how to go about building a complex online game or what that entails. At one point they were trying to donate to open source networking projects that were still in development and not production-ready in hopes they'd help them make their game, you'll see them listed as sponsors of yojimbo for example. It was bizarre to watch.
-
Handling acks during 1+ second packet loss with Glenn Fiedler's Reliable UDP Solution
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.
-
I need a good and simple networking library for C++
You may want to take a look at yojimbo , looks like it will fit your requirements pretty well.
-
Programming question : Which techniques are used to achieve real-time between players in online openworlds ? (think wow, ff14, teso)
And has his own C++ library for transmitting messages over UDP protocol https://github.com/networkprotocol/yojimbo
What are some alternatives?
Kaitai Struct - Kaitai Struct: declarative language to generate binary data parsers in C++ / C# / Go / Java / JavaScript / Lua / Nim / Perl / PHP / Python / Ruby
netcode.io - A protocol for secure client/server connections over UDP
FlatBuffers - FlatBuffers: Memory Efficient Serialization Library
ENet-CSharp - Reliable UDP networking library
msquic - Cross-platform, C implementation of the IETF QUIC protocol, exposed to C, C++, C# and Rust.
KCP - :zap: KCP - A Fast and Reliable ARQ Protocol
keepalived - Keepalived
lsquic - LiteSpeed QUIC and HTTP/3 Library
bakelite - Bakelite is a utility that makes it simple to communicate with your firmware.
SDLPoP - An open-source port of Prince of Persia, based on the disassembly of the DOS version.
printf - Tiny, fast, non-dependent and fully loaded printf implementation for embedded systems. Extensive test suite passing.
SLikeNet - SLikeNetâ„¢ is an Open Source/Free Software cross-platform network engine written in C++ and specifially designed for games (and applications which have comparable requirements on a network engine like games) building upon the discontinued RakNet network engine which had more than 13 years of active development.