5 dépôts
Low-level capabilities for accessing and manipulating memory buffers used by network protocols.
Distinct from Direct Memory Buffers: The candidates focus on filesystem access, GPU buffers, or editor plugins; this is about raw memory access for network protocol objects.
Explore 5 awesome GitHub repositories matching operating systems & systems programming · Memory Buffer Access. Refine with filters or upvote what's useful.
Ce projet est une collection complète de matériel pédagogique de programmation Python, y compris des tutoriels, des exercices et des exemples de code organisés. Il sert de programme d'apprentissage et de boîte à outils d'ingénierie logicielle, utilisant des Jupyter Notebooks pour combiner du code exécutable avec un texte éducatif descriptif. Le dépôt fournit des guides d'implémentation pratiques pour construire des applications de grand modèle de langage, telles que des systèmes de génération augmentée par récupération, des agents IA avec état et des flux de travail d'apprentissage automatique. Il se distingue en offrant une approche structurée des flux de travail de codage agentique, couvrant la distillation de la fenêtre de contexte, le routage de modèle agnostique au fournisseur et les sorties structurées imposées par schéma. Le matériel couvre un large éventail de capacités d'ingénierie logicielle, notamment la programmation asynchrone avec des files d'attente de tâches distribuées, le développement d'applications web avec des API REST et les flux de travail d'analyse de données. Il inclut également des ressources pour maîtriser la conception orientée objet, implémenter des pipelines CI/CD et appliquer des normes professionnelles de linting et de formatage.
Teaches how to use the buffer protocol to read internal object data and reduce memory overhead.
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.
nghttp2 increments the reference count of a buffer to prevent it from being freed while other components require access.
Asterinas est un noyau de système d'exploitation sécurisé en mémoire conçu pour prévenir les data races et la corruption mémoire. Il fonctionne comme un noyau compatible Linux-ABI, permettant l'exécution de binaires Linux existants et de charges de travail conteneurisées tout en offrant un modèle de distribution de système d'exploitation déclaratif. Le projet se distingue en agissant comme un hôte de conteneurs pour machines virtuelles et un OS invité pour le confidential computing, lui permettant de s'exécuter au sein d'environnements d'exécution isolés matériellement comme Intel TDX. Il implémente une base de calcul de confiance minimale en isolant les opérations dangereuses de bas niveau et sépare les mécanismes fondamentaux du noyau des implémentations de politiques spécifiques. Le système couvre un large éventail de capacités, incluant la gestion de la mémoire physique et virtuelle, le multi-processing symétrique et l'abstraction matérielle pour diverses architectures CPU. Il inclut également le support pour les runtimes de conteneurs sécurisés, un ensemble complet de primitives réseau et socket, ainsi qu'une toolchain spécialisée pour la compilation et l'émulation du noyau. Le projet prend en charge le déploiement multi-architecture sur les plateformes x86-64, RISC-V 64 et LoongArch 64.
Provides safe interfaces for reading and writing raw, untyped byte buffers using volatile copy operations.
DPDK est un framework de traitement de paquets et une bibliothèque réseau de contournement du noyau conçue pour accélérer les performances du plan de données réseau. Il fournit une pile réseau en espace utilisateur qui déplace les données réseau directement de la carte d'interface réseau vers l'espace utilisateur, éliminant la surcharge du noyau du système d'exploitation pour atteindre un débit élevé et une faible latence. Le framework utilise une architecture de pilote en mode polling qui remplace la mise en réseau pilotée par interruption par un mécanisme de polling constant. Cette approche permet l'implémentation de fonctions réseau et de protocoles en dehors du noyau. Le projet couvre des capacités pour le traitement de paquets haute performance, la virtualisation des fonctions réseau et le développement d'appliances réseau personnalisées telles que des pare-feux et des équilibreurs de charge.
Implements hugepage-based memory allocation to improve memory access speed and reduce TLB misses for packet buffers.
Velox est un moteur d'exécution de requêtes C++ haute performance et une bibliothèque de traitement de données colonnaires. Il sert de framework composable pour implémenter des moteurs de requêtes analytiques, fournissant un évaluateur d'expressions vectorisées et une boîte à outils pour les systèmes de gestion de données. Le projet se distingue par son utilisation de l'exécution colonnaire vectorisée et de l'allocation mémoire basée sur des arènes pour traiter des jeux de données à grande échelle. Il propose des optimisations spécialisées telles que la mise en cache des tables de jointure broadcast, le push-down de filtres dynamiques et l'encodage par dictionnaire pour réduire la surcharge mémoire et accélérer les lectures analytiques. Le moteur couvre un large éventail de capacités analytiques, incluant l'implémentation de jointures hash, merge et semi, ainsi que l'agrégation parallèle multi-étapes et le calcul de fonctions de fenêtre. Il fournit des primitives pour le stockage colonnaire en mémoire, le décodage de données Parquet et l'intégration avec le stockage cloud. L'extensibilité est assurée par un système d'enregistrement de fonctions pour des fonctions scalaires et d'agrégation personnalisées, avec des bindings de haut niveau disponibles pour connecter la logique C++ à Python.
Uses reference-counted buffers and memory pools to support zero-copy data views across the execution engine.