3 dépôts
Low-level implementations of network protocols written in C for efficiency and portability.
Distinct from C++ Core Implementations: Existing candidates are exclusively for C++, whereas this is a core C implementation.
Explore 3 awesome GitHub repositories matching operating systems & systems programming · C Network Protocol Implementations. Refine with filters or upvote what's useful.
nghttp2 est une suite de bibliothèques C de bas niveau et d'outils conçus pour implémenter le protocole HTTP/2. Elle fournit une implémentation efficace en mémoire de la logique fondamentale du protocole, y compris le cadrage (framing), le multiplexage de flux et le contrôle de flux. Le projet inclut une bibliothèque dédiée à la compression et à la décompression d'en-têtes HPACK pour réduire la bande passante réseau. Il fournit également un ensemble d'outils pour analyser le trafic réseau et évaluer les performances du serveur, y compris des mesures de débit et de latence. Ses capacités plus larges couvrent l'implémentation de protocoles et la gestion du trafic, y compris la négociation de connexion ALPN, la priorisation des requêtes et la validation des composants d'en-tête. La bibliothèque prend en charge des extensions de protocole personnalisées via un système d'événements basé sur des rappels (callbacks) et inclut des utilitaires pour la gestion de la mémoire et la traduction des codes d'erreur. Le projet inclut un support de build et des scripts de configuration pour la compilation croisée de binaires pour la plateforme Android.
Provides a memory-efficient C library implementation of the core HTTP/2 protocol logic.
MsQuic est une implémentation multiplateforme en C du protocole QUIC. Il fournit une bibliothèque réseau pour établir des liens de transport chiffrés et authentifiés sur UDP, intégrant TLS pour assurer que tous les flux de données entre les points de terminaison sont chiffrés. L'implémentation utilise une couche de liaison agnostique au langage pour prendre en charge les langages de haut niveau incluant C#, Rust et C++. Elle dispose d'une migration basée sur l'ID de connexion pour maintenir les sessions actives lorsque les adresses IP ou les ports changent, et emploie le multiplexage multi-flux pour gérer des flux de données indépendants au sein d'une connexion unique. La bibliothèque couvre des primitives de transport réseau telles que l'échange de flux bidirectionnel, l'écoute de connexion et la transmission de datagrammes non fiables. Elle inclut également des configurations pour la sécurité de la connexion et emploie des E/S asynchrones pilotées par événements pour optimiser le débit réseau.
Provides a high-performance implementation of the QUIC network protocol written in C for cross-platform portability.
libmodbus est une bibliothèque C portable qui implémente la pile de protocole Modbus pour la communication avec le matériel industriel. Elle fournit un ensemble d'outils pour lire et écrire des bobines et des registres sur des contrôleurs et capteurs industriels, fonctionnant à la fois comme client et comme serveur de protocole. La bibliothèque prend en charge plusieurs couches de transport, incluant une pile Modbus TCP pour la communication réseau IPv4 et IPv6 et un pilote Modbus RTU pour la communication série. Elle se distingue par des utilitaires de conversion de données spécialisés qui gèrent l'inversion d'octets et l'endianness pour les nombres à virgule flottante et le mappage de champs de bits pour assurer la compatibilité entre différentes dispositions de mémoire matérielle. Le projet couvre un large éventail de capacités de communication industrielle, incluant les opérations atomiques sur les registres, l'identification des appareils et la gestion des contraintes de protocole ou des particularités des appareils. Il fournit une gestion complète de la connectivité pour les ports série — incluant la signalisation Request to Send — et les sockets réseau, ainsi que des tampons serveur mappés en mémoire pour simuler la mémoire de l'appareil. Cette implémentation multiplateforme est compatible avec Linux, Windows, macOS et FreeBSD.
Implements a low-level network protocol stack written in C for maximum efficiency and portability.