Skip to content

Obsidian-Dev-Labs/Enigma

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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/enigma

Quick 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 modules

Documentation

📚 Complete Documentation - Full documentation hub

Essential Guides

Demo

A complete demo is available in the demo/ directory:

cd demo
npm install
npm start

Visit 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

AI was used to write documentation for this codebase and may not be completely accurate because im tired & lazy, however AI slop is not tolerated well in the codebase, other than potentiall writing a simple demo

About

Transport Level Framework

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •