14 dépôts
Toolkits for distributing computational workloads across multiple CPU cores for high-throughput processing.
Distinct from Concurrent Query Processing: Distinct from Concurrent Query Processing: focuses on general-purpose data processing toolkits rather than database-specific query execution.
Explore 14 awesome GitHub repositories matching data & databases · Concurrent Data Processors. Refine with filters or upvote what's useful.
This library is a collection of generic utilities for the Go programming language designed to simplify the manipulation of slices and maps. It provides a functional toolkit that enables developers to perform data transformations, such as filtering, mapping, and reducing, while maintaining strict type safety through the use of language-level generics. The project distinguishes itself by offering a dual approach to data processing that balances functional programming patterns with performance-oriented execution. It supports both immutable functional pipelines for predictable state transitions a
Provides a toolkit for distributing computational workloads across multiple CPU cores for high-throughput processing.
brpc is a high-performance C++ RPC framework and network programming library designed for building distributed systems. It functions as a multi-protocol RPC server capable of hosting and detecting multiple communication protocols, including gRPC, Thrift, HTTP, Redis, and Memcached, on a single TCP port. The project distinguishes itself through high-throughput data transport and memory efficiency, utilizing RDMA-based transport to bypass the kernel TCP stack and zero-copy memory management to eliminate data duplication. It also implements the Raft algorithm for consensus-based state replicatio
Handles binary data concurrently using an event dispatcher to minimize long-tail latency.
Badger is an embeddable key-value store written in Go that provides persistent data storage for byte keys and values. It is a persistent database that utilizes a tiered LSM tree storage model to optimize disk storage and retrieval efficiency. The system features an ACID transaction engine that ensures data integrity through serializable snapshot isolation and multi-version concurrency control. It also provides an encrypted key-value store with data-at-rest encryption and a managed encrypted key registry to secure stored information. The engine covers a broad set of capabilities including hig
Enables concurrent iteration over database snapshots using multiple workers to batch filtered key-value pairs.
Dolphin is a multimodal layout analyzer and image-to-structure converter that transforms photographed or digital document images into machine-readable structured data. It functions as an LLM document parser, utilizing vision-language models to simultaneously predict spatial layout and text content. The system is designed as a concurrent document processor, employing parallel document parsing to process multiple elements across distributed compute nodes. This high-throughput approach reduces the total time required to convert large volumes of images into structured formats. The project covers
Distributes computational workloads across multiple cores to accelerate the conversion of images into structured data.
whatsmeow is a Go library that implements the WhatsApp multidevice protocol, providing direct access to the binary node serialization, WebSocket-based connection management, and Signal‑Protocol encryption that underpin WhatsApp’s messaging infrastructure. It maintains persistent, low-latency connections across multiple devices, handles session credentials independently for each device, and processes incoming events through an event‑driven dispatch system for messages, receipts, and presence updates. The library differentiates itself through comprehensive client‑side state management: it cache
Processes incoming WhatsApp events through a callback-based event dispatcher for messages, receipts, and presence updates.
RxGo est une bibliothèque de programmation réactive fonctionnelle et une implémentation de ReactiveX pour le langage Go. Elle sert de boîte à outils de traitement de flux asynchrone conçue pour coordonner les programmes basés sur les événements et les flux de données en utilisant le pattern observable. La bibliothèque permet la construction de pipelines de traitement asynchrones qui transforment, filtrent et combinent des séquences d'événements. Elle se distingue par l'utilisation d'opérateurs fonctionnels pour composer ces pipelines et fournit des mécanismes pour gérer l'exécution concurrente. La boîte à outils couvre un large éventail de capacités d'orchestration de flux, incluant l'agrégation de données, la combinaison de flux multiples et la conversion de flux en structures de données statiques. Elle inclut un support intégré pour la récupération d'erreurs, le contrôle de contre-pression (backpressure) pour réguler les vitesses de production de données, et le pooling de travailleurs pour paralléliser le traitement sur les cœurs CPU.
Provides a toolkit for distributing computational workloads across multiple CPU cores for high-throughput stream processing.
FirebaseChat est une application de chat en temps réel et un client de messagerie serverless qui synchronise instantanément les conversations et les messages entre les clients. Il fournit une interface utilisateur pour un système de messagerie reposant sur un magasin de documents NoSQL hébergé dans le cloud. Le projet implémente un système de chat en temps réel via l'intégration d'un backend Firebase, permettant des workflows de messagerie instantanée et la synchronisation des données entre les clients connectés. L'application gère les données en utilisant un stockage NoSQL sans schéma et une modélisation de données basée sur les documents. Elle utilise une connexion persistante pour la synchronisation de la base de données et gère les mises à jour d'état via une distribution de messages pilotée par les événements et une projection d'état côté client.
Triggers UI updates and notifications using an event-driven dispatch system based on backend data changes.
Streem is a stream-based programming language and data pipeline orchestrator. It provides a domain-specific language for defining concurrent data flows, allowing users to link data sources to destinations through a sequence of operations that transform and filter individual stream elements. The system uses a custom script syntax to define data-flow connections and pipeline definitions. This allows for the orchestration of concurrent data processing where multiple pipeline stages execute simultaneously to move data elements through the system. The platform covers functional data transformatio
Handles multiple pieces of information simultaneously by passing them through a pipeline of independent functions.
Ultrajson est une bibliothèque JSON Python haute performance et un parser basé sur C conçu pour minimiser la surcharge de parsing. Il fournit une implémentation en C de la spécification JSON pour permettre un encodage et un décodage rapides des données. Le projet fonctionne comme un processeur JSON concurrent, prenant en charge la sérialisation et la désérialisation multi-threadées pour augmenter le débit des données et empêcher le blocage de l'exécution. Ses capacités couvrent la sérialisation de données Python et le traitement JSON haute performance pour les pipelines de données en temps réel. Cela inclut le parsing de données JSON et la sérialisation d'objets natifs en chaînes JSON.
Functions as a concurrent processor supporting multi-threaded JSON operations to prevent blocking execution.
Concurrent-map is a lock-striped hash map and sharded concurrent cache for Go, designed as a high-performance key-value store that enables thread-safe parallel reads and writes with minimal blocking. It replaces a single global mutex with per-shard locking, using hash-based key distribution to assign entries to independent segments, allowing multiple goroutines to operate simultaneously without race conditions. The library achieves its performance through fine-grained locking and a lock-free read path, where each shard operates independently with its own lock, enabling parallel reads and writ
Supports snapshot-based iteration allowing safe traversal of all entries while concurrent modifications occur.
SSH.NET is a .NET library that implements the SSH-2 protocol for encrypted remote connections and secure file transfers. It provides a complete SSH-2 protocol stack implementation with a channel multiplexing engine that manages multiple concurrent channels over a single connection, supporting simultaneous shell sessions, remote command execution, SFTP transfers, and port forwarding tunnels. The library includes a pluggable authentication pipeline supporting password, public key, certificate, keyboard-interactive, and multi-factor authentication combinations. The library distinguishes itself t
Dispatches SSH protocol messages and session events through a subscription-based handler system for extensible message processing.
OpenMQTTGateway est une passerelle IoT multi-protocole et une interface matérielle conçue pour les appareils ESP32 et ESP8266. Il sert de pont qui convertit les signaux Bluetooth Low Energy, Radio Fréquence et Infrarouge en messages MQTT standardisés pour une utilisation dans les systèmes de domotique. Le projet fournit des capacités de pontage spécifiques pour les signaux radio 433MHz, 315MHz et 868MHz, ainsi que pour les commandes LoRa et Infrarouge. Il inclut un détecteur de présence Bluetooth qui surveille les publicités des appareils pour suivre la proximité et l'emplacement des personnes ou des objets. Le système gère l'agrégation des capteurs IoT via un balayage passif et un sondage radio asynchrone, convertissant les données binaires brutes en formats JSON via un décodage de charge utile spécifique au matériel. Il prend également en charge le routage de commandes bidirectionnel pour gérer les appareils sans fil connectés et les prises intelligentes.
Triggers MQTT publishing routines immediately upon the detection and decoding of valid hardware signals.
Melody is a WebSocket server framework designed to upgrade HTTP connections into bidirectional streams. It functions as a session manager and binary streaming library that facilitates real-time data exchange between a server and multiple remote clients. The project features a broadcast engine that optimizes multi-client transmissions through wire-representation caching. It includes a dedicated session management system for attaching custom state to persistent network connections and an upgrade handler that validates handshake headers. The framework covers broad capability areas including eve
Provides an event dispatcher to route incoming binary network frames to specific handler functions efficiently.
Ce projet est une ressource éducative conçue pour aider les développeurs à maîtriser l'exécution concurrente et les modèles de synchronisation en Go. Il fournit une collection structurée d'exercices de codage pratiques et de défis basés sur les tests qui se concentrent sur l'implémentation pratique de pratiques d'ingénierie logicielle multi-thread. Le dépôt met l'accent sur les mécanismes fondamentaux de la concurrence en Go, incluant la communication basée sur les canaux, le verrouillage par mutex et la coordination du cycle de vie. Il couvre des modèles essentiels tels que la gestion des tâches en arrière-plan, l'implémentation d'arrêts de service gracieux et l'application de limites de débit ou de contraintes de temps d'exécution. En travaillant sur ces exercices, les utilisateurs apprennent à protéger les structures de mémoire partagée et à prévenir les conditions de course (race conditions) lors des opérations concurrentes. Les supports incluent des utilitaires de test automatisés qui tirent parti de l'instrumentation à l'exécution pour valider l'exactitude de la logique concurrente. Ces exercices guident les apprenants à travers les nuances de la coordination de plusieurs routines, garantissant que les ressources partagées restent thread-safe tout en maintenant le débit du système.
Coordinates multiple routines for simultaneous data production and consumption to increase throughput.