@nightnetwork/enigma
v1.0.0
Published
Modular transport wrapper for bare-mux that enables composable transport functionality through a plugin system
Downloads
96
Maintainers
Readme
Enigma
A modular transport wrapper for bare-mux that enables composable transport functionality through a module system.
What is Enigma?
Enigma is a framework that wraps base transports and allows you to layer multiple capabilities through modules:
- Middleware - Request/response interception and modification
- Protocol Conversion - WebSocket → WebRTC, WebSocket → WebTransport
- Security - Encryption, authentication, custom protocols
- Performance - Caching, compression, optimization
- Monitoring - Logging, analytics, debugging
Instead of creating monolithic transport implementations, Enigma lets you compose functionality from independent, reusable modules.
Installation
npm install @nightnetwork/enigmaQuick Start
import BareMux from '@mercuryworkshop/bare-mux';
const connection = new BareMux.BareClient();
await connection.setTransport('/enigma/index.mjs', [{
base: '/epoxy/index.mjs',
wisp: 'wss://wisp.example.com/',
modules: [
'/modules/logger.mjs'
]
}]);
console.log('Enigma ready!');Features
- ✅ Composable - Mix and match modules for your use case
- ✅ Type-safe - Full TypeScript support with comprehensive types
- ✅ Extensible - Create custom modules with simple API
- ✅ Priority-based - Control execution order with module priorities
- ✅ Zero Overhead - Unused hooks have zero performance impact
- ✅ Runtime Management - Enable/disable modules dynamically
Architecture
Client Request
↓
EnigmaTransport
↓
[Module 1: Priority 80] - Authentication
↓
[Module 2: Priority 50] - Content modification
↓
[Module 3: Priority 20] - Logging
↓
Base Transport (Epoxy, Curl, etc.)
↓
Response flows back through modulesDocumentation
📚 Complete Documentation - Full documentation hub
Essential Guides
- Getting Started - Installation and first module
- API Reference - Complete API documentation
- Type System - TypeScript type reference
- Examples - Practical code examples
Demo
A complete demo is available in the demo/ directory:
cd demo
npm install
npm startVisit http://localhost:8080 to see Enigma in action with bare-mux and Scramjet.
Module Priority Guidelines
- 90-100: Protocol modifications (RTC, Oxygen)
- 80-89: Security (encryption, auth)
- 50-79: Middleware systems (Reflux)
- 40-49: Caching
- 10-39: Logging/monitoring
- 0: Default
Higher priority = executes first in the request chain.
License
Apache2 License - see LICENSE file for details.
Related Projects
- @nightnetwork/reflux - Content modification module
- @mercuryworkshop/bare-mux - Transport multiplexer
- @mercuryworkshop/scramjet - Web proxy runtime
