21 dépôts
Mechanisms for mapping HTTP paths, including wildcards, to specific handler components.
Distinct from HTTP Request Dispatching: Specializes general request dispatching into path-based routing for serverless components.
Explore 21 awesome GitHub repositories matching networking & communication · HTTP Request Routing. Refine with filters or upvote what's useful.
This project is a Node.js HTTP reverse proxy middleware designed to route incoming HTTP and WebSocket traffic to target backend services. It functions as a dynamic routing engine and API gateway tool, providing the capability to consolidate multiple backend services behind a single entry point. The middleware features a WebSocket proxy bridge that manages protocol upgrade handshakes to maintain persistent bidirectional communication. It also includes a request and response transformer used to intercept and modify headers, bodies, and URL paths during transit. The system provides broad traffi
Implements a routing engine to direct network requests to different target servers using path patterns and glob matching.
Twirp est un framework RPC Protocol Buffers conçu pour implémenter une communication de microservices distribués typée et sécurisée via HTTP. Il fonctionne comme un framework de communication de microservices et un générateur de code API qui produit des stubs clients et des interfaces serveur fortement typés à partir de définitions de schéma pour éliminer le boilerplate réseau manuel. Le framework assure la compatibilité avec l'infrastructure web existante en exécutant des appels de procédure distante (RPC) sur le transport HTTP standard. Il utilise des contrats basés sur des schémas comme source unique de vérité pour permettre l'interopérabilité entre les langages et découpler la logique métier du transport réseau. Le système couvre plusieurs domaines de capacités de base, incluant le routage piloté par interface, la sérialisation de données multi-formats prenant en charge à la fois JSON et binaire, et des middlewares de cycle de vie de requête pour les préoccupations transversales. Il fournit également un système de mappage d'erreurs standardisé pour traduire les échecs de service en codes lisibles par machine et inclut des outils pour la vérification de la compatibilité client.
Maps incoming HTTP requests to specific service methods using routing logic derived from API interfaces.
Spin is a WebAssembly serverless framework and development toolchain for building and running portable microservices. It functions as an event-driven orchestrator and runtime that executes WebAssembly components, allowing developers to map HTTP requests, Redis messages, and cron schedules to specific modules. The project distinguishes itself by implementing a Wasm-based AI inference gateway, enabling components to perform model inference and generate text embeddings. It utilizes the WebAssembly Component Model and WASI for language-agnostic composition and portable host interfacing, while emp
Maps incoming HTTP requests to specific components using exact paths or wildcards.
CocoaHTTPServer est un serveur web embarqué léger conçu pour gérer les requêtes réseau entrantes et servir du contenu d'application local. Le projet implémente la découverte de service basée sur Bonjour pour diffuser la disponibilité du serveur sur les réseaux locaux et prend en charge WebDAV pour la gestion de fichiers à distance, permettant aux fichiers d'être créés, déplacés et modifiés via HTTP. La sécurité réseau est gérée via le chiffrement TLS basé sur certificat et l'authentification des ressources par mot de passe. Le routage des requêtes est géré via un système basé sur délégué, tandis que les connexions concurrentes sont gérées en utilisant Grand Central Dispatch.
Routes incoming HTTP requests to specific application logic through a set of defined callback methods.
Director is a routing library for JavaScript that handles URL and command-line pattern matching across client-side, server-side, and CLI environments. It provides a unified approach to defining routes as nested object literals, where each key maps to a URL segment and its handler, supporting both hash fragment monitoring and the HTML5 History API for browser navigation without page reloads. The library distinguishes itself through its ability to operate in multiple contexts with a single routing paradigm. It supports asynchronous handler queue execution for sequential tasks like authenticatio
Matches incoming HTTP request method and path against a routing table and dispatches the associated handler function.
NGINX Unit is an open-source application server designed to natively execute code across multiple programming language runtimes and WebAssembly within a single process. It serves as a multi-language application server that can run applications written in Go, Java, Node.js, Perl, PHP, Python, Ruby, and WebAssembly side by side, without requiring separate runtime environments for each language. The server distinguishes itself through a RESTful JSON control API that enables dynamic, zero-downtime configuration changes without restarting the server. It combines event-driven asynchronous I/O with
Directs incoming HTTP requests to different handlers based on URL, headers, cookies, or other request properties.
ServiceStack est un framework web .NET haute performance conçu pour construire des API typées en utilisant des objets de requête et de réponse fortement typés. Il fonctionne comme un moteur d'API basé sur les messages qui découple la logique métier de la couche de transport, permettant aux services d'être exposés via plusieurs protocoles incluant HTTP, gRPC et divers fournisseurs de files d'attente de messages. Le framework se distingue par son générateur d'API typé, qui produit des SDK clients natifs et des objets de transfert de données (DTO) à partir des métadonnées de service dans plusieurs langages. Il inclut également une passerelle de service distribuée pour l'orchestration de microservices, un ORM code-first pour traduire directement les objets C# en enregistrements de base de données, et un système centralisé de gestion des identités et des accès pour un accès sécurisé basé sur des jetons. Sa surface de capacités plus large couvre la messagerie asynchrone et le streaming d'événements en temps réel via Pub-Sub et Server-Sent Events. Il fournit une prise en charge complète de la sérialisation des données pour des formats tels que JSON, XML, ProtoBuf et MessagePack, aux côtés de flux d'authentification intégrés incluant JWT, clés API et authentification step-up. L'outillage supplémentaire inclut la génération automatisée d'API CRUD, l'exécution de tâches en arrière-plan et des modèles de tableau de bord administratif.
Binds HTTP path and query data into strongly typed objects to route requests to specific service routines.
FastRoute est un routeur de requêtes PHP qui mappe les URI de requêtes HTTP entrantes vers des gestionnaires spécifiques. Il fonctionne comme un routeur à expressions régulières, faisant correspondre les chemins de requête dynamiques aux modèles pour extraire des variables et router le trafic. Le projet opère comme un répartiteur de routes mis en cache, stockant des tables de routage pré-calculées pour éliminer la surcharge liée à l'analyse des définitions à chaque requête. Il utilise le regroupement d'expressions régulières pour combiner plusieurs modèles de route en une seule opération, réduisant le nombre total d'étapes de correspondance requises pour la résolution. La bibliothèque couvre la gestion dynamique des points de terminaison API via l'utilisation de modèles avec espaces réservés et segments optionnels. Elle fournit des capacités de préfixage par groupe pour organiser les points de terminaison et permet une logique de routage personnalisée en remplaçant l'analyseur, le générateur de données ou le répartiteur.
Uses a cached routing mechanism to eliminate the overhead of parsing route definitions on every request.
serverless-offline est un plugin du Serverless Framework qui fournit un simulateur d'infrastructure cloud locale. Il agit comme un émulateur local AWS Lambda et un mock AWS API Gateway, permettant le développement et le test de fonctions serverless sur une machine locale sans déploiement vers un fournisseur distant. Le projet se distingue en simulant des connexions WebSocket bidirectionnelles et le routage de messages, ainsi qu'en mimant le cycle de vie des requêtes d'une passerelle HTTP. Il inclut un pipeline d'autorisation d'identité mock pour vérifier les jetons et JWT localement, et prend en charge le montage de couches de dépendances virtuelles dans l'environnement d'exécution. Globalement, l'outil couvre l'exécution de fonctions sur plusieurs runtimes avec des modes d'exécution isolés, l'émulation de passerelle cloud pour le routage des requêtes, et la simulation de déclencheurs d'événements planifiés pour la logique temporelle. Il fournit également des capacités de simulation d'invocation SDK et de mock de contexte de requête pour faciliter les tests d'intégration locaux.
Implements mechanisms for mapping HTTP paths to specific handler components locally.
sw-precache est un outil de build de service worker et un générateur de pré-mise en cache qui produit du code JavaScript pour versionner et stocker des assets statiques. Il fonctionne comme une interface en ligne de commande et un module node conçu pour permettre la fonctionnalité hors ligne et améliorer les temps de chargement des applications web. Le projet se distingue en combinant la découverte d'assets au moment du build avec un orchestrateur de mise en cache au moment de l'exécution. Il utilise le versionnage basé sur le hachage de contenu pour déclencher des mises à jour uniquement lorsque le contenu des fichiers change et emploie la génération de code basée sur des templates pour injecter des règles de routage personnalisées et des bibliothèques de gestionnaires dans le service worker résultant. L'outil couvre un large éventail de capacités de mise en cache et de gestion du trafic, notamment la définition de stratégies de récupération network-first ou cache-first. Il gère le routage des requêtes réseau en mappant les modèles d'URL et les méthodes HTTP vers des gestionnaires spécifiques pour résoudre le trafic.
Implements a routing system that maps URL patterns and HTTP methods to specific handlers within the service worker.
koa2-note est un projet axé sur le développement de serveurs web Koa2 et la programmation asynchrone Node.js. Il fournit un framework pour construire des serveurs web et des API en utilisant un pipeline de middleware asynchrone pour gérer les cycles de requête et de réponse. Le projet met l'accent sur une architecture backend en couches qui découple le routage, les services métier et les modèles de données. Il se distingue par l'intégration de bases de données relationnelles pour la persistance des sessions utilisateur et des données d'application, ainsi qu'un processus de build incluant la compilation JSX-vers-JavaScript pour les assets frontend. La surface de capacités couvre la conception d'API backend, incluant le routage RESTful et l'analyse des données de requête, ainsi que le rendu côté serveur avec des moteurs de template. Il inclut également la prise en charge des téléchargements de fichiers asynchrones via l'analyse de flux multipart, la gestion de session par cookies et l'implémentation de JSONP pour les requêtes inter-domaines. Le dépôt sert de ressource éducative avec des tutoriels structurés et des exemples pour apprendre l'implémentation du framework Koa et l'architecture serveur.
Implements server-side routing to dispatch HTTP requests to appropriate handlers using middleware.
Racket est un langage de programmation généraliste multi-paradigme de la famille Lisp, conçu pour la création de langages. Il fonctionne comme un atelier de langage, fournissant une plateforme pour concevoir et implémenter des langages de programmation personnalisés via un système flexible de macros et de modules. Le système se distingue en offrant une suite complète pour l'ingénierie sémantique, permettant la construction de sous-ensembles de langages spécialisés et de couches éducatives. Il inclut des outils pour la conception de langages personnalisés, tels que la génération de lexer et de parser, ainsi que la capacité de définir des règles d'expansion de module et une sélection de langage dynamique au moment de la lecture. Le projet fournit un environnement de développement intégré avec un éditeur intégré, un débogueur visuel et un gestionnaire de paquets logiciels. Sa surface de capacités s'étend à une bibliothèque standard généraliste couvrant le rendu graphique 2D, le traitement de données binaires, l'intégration SQL et de bases de données déductives, et la construction d'interfaces utilisateur graphiques. L'environnement prend en charge la compilation du code source en fichiers exécutables autonomes pour la distribution.
Implements mechanisms for mapping URLs to specific handler functions using a dispatch mechanism.
Handy est un framework de serveur réseau C++11 et un moteur de mise en réseau piloté par événements conçu pour construire des serveurs TCP et UDP concurrents haute performance. Il fonctionne comme une bibliothèque d'E/S asynchrones et une implémentation de serveur HTTP qui sépare les E/S réseau asynchrones de la logique métier synchrone pour simplifier le développement de serveurs. Le framework se distingue par l'utilisation de notifications d'événements spécifiques à la plateforme pour gérer des millions de connexions réseau simultanées et en fournissant un wrapper réseau SSL/TLS pour la transmission de données asynchrones chiffrées. Il implémente un modèle de traitement half-sync/half-async et un réacteur basé sur une boucle d'événements pour maintenir une haute concurrence. Le projet couvre un large éventail de capacités réseau, incluant le routage HTTP basé sur les chemins, la conception de protocoles binaires personnalisés via le cadrage de messages basé sur des codecs, et la répartition des tâches d'E/S thread-safe. Il inclut également des utilitaires pour la gestion du cycle de vie des connexions, la planification de tâches par roue de minuterie pour une exécution temporisée, et la coordination d'arrêt gracieux.
Maps incoming HTTP URL paths to specific handler functions to generate and send responses to web clients.
Sylar est un framework serveur asynchrone C++ haute performance et une bibliothèque réseau pilotée par événements. Il fonctionne comme un planificateur de coroutines et une implémentation de serveur HTTP conçue pour construire des services réseau utilisant des E/S non bloquantes. Le projet se distingue par un intercepteur d'appels système qui hooke les API de socket et de sleep bloquantes, transformant les opérations synchrones en événements asynchrones non bloquants. Il emploie un système de threading en espace utilisateur pour distribuer des tâches légères à travers un pool de threads de travail afin de maximiser l'utilisation du CPU. Le framework couvre un large éventail de capacités réseau et système, incluant l'analyse de protocole HTTP basée sur une machine à états, le routage URI par fuzzy-matching et une interface de socket unifiée pour divers types d'adresses. Il fournit également des outils pour la synchronisation de ressources concurrentes, le logging d'application structuré, la sérialisation de données binaires et la gestion de configuration runtime.
Implements URI mapping with precise and fuzzy matching to dispatch web requests to handler functions.
tts-server-android is a system-level text-to-speech service for Android that routes synthesis requests to external cloud APIs or local engines. It functions as an HTTP speech synthesis gateway, converting system speech requests into customizable HTTP requests for remote cloud services. The project includes a narrative dialogue parser that uses quotation marks to differentiate between narration and dialogue, allowing for different reading styles. It also features a voice manager and synthesis interface to implement text replacement rules and automatic retries to improve voice output accuracy.
Routes text requests to remote cloud servers using customizable HTTP configurations to retrieve audio streams.
Poem est une boîte à outils complète pour construire des applications web, API et serveurs typés en utilisant le langage de programmation Rust. Il fournit une fondation pour développer des serveurs web qui gèrent les requêtes HTTP avec une forte sécurité de type. Le framework se distingue en prenant en charge plusieurs protocoles de communication via un mappage de gestionnaire agnostique au protocole. Cela permet à une logique interne unique d'être exposée à travers HTTP, des services gRPC utilisant des définitions protobuf, et le Model Context Protocol pour l'intégration de modèles d'IA. De plus, il inclut des outils intégrés pour générer des spécifications OpenAPI v3 et une documentation interactive. Le projet couvre un large éventail de capacités, incluant le routage de requête, les pipelines middleware basés sur des traits, et la gestion de session. Il fournit des fonctionnalités de sécurité telles que le renouvellement automatique de certificat TLS basé sur ACME, la protection CSRF, et la configuration CORS. D'autres capacités intégrées incluent le streaming de données en temps réel via WebSockets et Server-Sent Events, le service d'assets statiques, et l'intégration OpenTelemetry pour le traçage distribué des requêtes. Le framework est conçu pour prendre en charge diverses cibles de déploiement, incluant la capacité d'exécuter des applications web en tant que fonctions serverless pilotées par événements au sein de runtimes cloud.
Maps incoming HTTP request paths and host headers to specific handler functions.
Ce projet est un kit de démarrage et un boilerplate pour développer des plugins étendant les fonctionnalités de ChatGPT via des API externes. Il sert d'implémentation de référence pour construire des outils permettant aux grands modèles de langage d'effectuer des tâches via des appels API séquencés et un mappage de données structuré. Le dépôt fournit un template pour intégrer des API REST et un guide pour sécuriser la communication entre un modèle de langage et des endpoints de services tiers. Il se concentre sur la configuration de la vérification d'identité et des mécanismes de handshake entre un agent et un serveur backend privé. L'implémentation couvre la définition d'intégrations API externes et le développement d'outils pour les agents de modèles de langage. Ces capacités incluent l'exécution d'appels API et la configuration de l'authentification pour sécuriser la communication avec des applications tierces.
Directs AI-generated requests to specific external endpoints based on API interface definitions.
uPic is a native macOS application designed for uploading images and files to cloud hosting services and private backends. It functions as a cloud image hosting tool and a custom API upload client that generates formatted links for shared content. The project distinguishes itself by allowing users to configure private backend endpoints with specific HTTP methods, headers, and server URLs. It converts uploaded file addresses into Markdown or HTML snippets, which are then written back to the system clipboard via customizable URL templates. The application integrates with macOS system framework
Enables flexible backend integration by configuring specific HTTP methods and custom headers for file routing.
The Event Gateway is a unified routing layer designed to connect HTTP requests and cloud events to serverless functions across multiple providers and infrastructure environments. It functions as a centralized platform for managing event-driven architectures, enabling developers to register, map, and trigger remote functions in response to incoming web traffic or asynchronous system events. The platform distinguishes itself through a plugin-based middleware pipeline that allows for custom logic execution during the request lifecycle, enabling developers to intercept, validate, or transform eve
Dispatches incoming HTTP requests and cloud events to backend destinations including serverless functions and message queues.
json-joy est une bibliothèque complète pour construire des applications collaboratives en temps réel et des systèmes distribués. Elle fournit un framework robuste pour gérer des structures de données de type JSON partagées qui fusionnent automatiquement les modifications concurrentes de plusieurs utilisateurs, garantissant un état cohérent sur toutes les répliques sans nécessiter de serveur de coordination central. Le projet se distingue par une approche haute performance de la gestion des données, utilisant des types de données répliqués sans conflit (CRDT) et une synchronisation basée sur des horloges logiques pour maintenir l'intégrité des données. Il inclut un moteur spécialisé pour naviguer et manipuler des objets imbriqués complexes en utilisant une syntaxe de pointeur standardisée, ainsi qu'une boîte à outils pour appliquer des modifications granulaires et atomiques aux documents. Ces capacités sont complétées par une bibliothèque de sérialisation haute vitesse qui prend en charge des formats binaires compacts pour optimiser la bande passante réseau et l'efficacité du stockage. Au-delà de sa logique de synchronisation de base, la bibliothèque offre une large suite d'outils pour la gestion d'état réactive et l'intégration de l'interface utilisateur. Elle fournit des hooks et des composants déclaratifs qui lient les modèles de données partagés directement aux éditeurs de texte et de code basés sur le web, permettant des fonctionnalités comme la présence en temps réel, le rendu de curseur distant et le suivi de l'historique local. Le système prend également en charge le traitement avancé des données, incluant la validation de schéma, l'évaluation d'expressions et l'organisation de données basée sur des arbres haute performance.
Matches incoming HTTP requests to handlers using a high-performance routing engine.