
Proxy HTTP hackable pour les tests de résilience et les conditions réseau simulées.
Pas activement maintenu, peut ne pas fonctionner avec les dernières versions de node.js. Si vous êtes intéressé par la maintenance de toxy, veuillez ouvrir une issue.
Proxy HTTP personnalisable pour simuler des scénarios de défaillance de serveur, des tests de résilience de systèmes et des conditions réseau inattendues, construit pour node.js.
Il a été principalement conçu pour les tests de résistance aux pannes, où toxy devient particulièrement utile pour couvrir les capacités de tolérance aux pannes et de résilience d'un système, en particulier dans les réseaux tolérants aux perturbations et les architectures orientées services, où toxy peut agir en tant que proxy MitM entre les services afin d'injecter des pannes.
toxy vous permet de brancher des poisons, éventuellement filtrés par des règles, qui peuvent essentiellement intercepter et modifier le flux HTTP selon vos besoins, en effectuant plusieurs actions malveillantes au milieu de ce processus, telles que limiter la bande passante, retarder les paquets réseau, injecter de la latence de gigue réseau ou répondre avec une erreur ou un code de statut personnalisé. Il opère principalement au niveau L7, bien qu'il puisse simuler des conditions de réseau L3.
toxy peut être utilisé de manière fluide par programmation ou via l'API HTTP. Il a été construit sur la base de rocky, un proxy HTTP complet orienté middleware, et il est également intégrable dans connect/express en tant que middleware standard.
Nécessite node.js +4.
Il existe d'autres solutions similaires à toxy sur le marché, mais la plupart d'entre elles n'offrent pas un contrôle programmatique approprié et ne sont généralement pas faciles à personnaliser, configurer ou sont directement fermées à l'extensibilité.
De plus, la majorité de ces solutions fonctionnent uniquement au niveau de la pile TCP L3 au lieu de fournir des abstractions de haut niveau pour couvrir les exigences courantes dans le domaine spécifique et la nature du protocole HTTP L7, comme toxy tente de le faire.
toxy apporte une solution puissante, personnalisable et extensible avec une abstraction pratique, mais sans perdre les capacités d'interface de bas niveau appropriées pour traiter facilement les primitives du protocole HTTP.
toxy a été conçu selon les règles de composition, de simplicité et d'extensibilité. Grâce à sa couche middleware hiérarchique spécifique au domaine intégrée, vous pouvez facilement étendre les fonctionnalités de toxy selon vos besoins.
toxy introduit deux directives : les poisons et les règles.
Les poisons sont la logique spécifique qui infecte une transaction HTTP entrante ou sortante (par exemple : injecter une latence, répondre avec une erreur). Une transaction HTTP peut être empoisonnée par un ou plusieurs poisons, et ces poisons peuvent également être configurés pour infecter le trafic au niveau global ou de la route.
Les règles sont une sorte de filtres de validation de correspondance qui inspectent une requête/réponse HTTP afin de déterminer, selon certaines règles, si la transaction HTTP doit être empoisonnée ou non (par exemple : si les en-têtes correspondent, les paramètres de requête, la méthode, le corps...). Les règles peuvent être réutilisées et appliquées aux flux de trafic entrants et sortants, y compris à différentes portées : globale, de route ou de poison.