Modules#
Join is organized into five specialized modules, each addressing specific needs in building high-performance networked applications.
This modular organization provides:
- clear separation of concerns
- easy navigation through the codebase
- logical grouping of related functionality
🏗️ Core Module#
Foundation components and runtime primitives
The core module provides essential building blocks including the epoll-based reactor, socket abstractions (TCP, UDP, TLS, Unix), threading primitives, lock-free queues, timers, and utilities.
Key Components:
- Reactor pattern with epoll
- TCP/UDP/TLS sockets
- Thread pools and synchronization
- Lock-free shared memory queues
- High-precision timers
👉 See: Core Module
🌐 Fabric Module#
Network control and Linux fabric management
The fabric module provides network interface management, ARP protocol implementation, and DNS resolution for controlling and monitoring the Linux network stack.
Key Components:
- Netlink-based interface manager
- ARP client implementation
- DNS resolver
👉 See: Fabric Module
🔐 Crypto Module#
Security and cryptographic operations
The crypto module offers cryptographic functions built on OpenSSL, including hashing, HMAC, digital signatures, and encoding utilities.
Key Components:
- Hash functions (MD5, SHA-1/224/256/384/512)
- HMAC with stream support
- Digital signatures (RSA, DSA, ECDSA, EdDSA)
- Base64 encoding/decoding
👉 See: Crypto Module
📊 Data Module#
High-performance serialization
The data module provides fast JSON and MessagePack parsers with both DOM and SAX-style interfaces, plus compression support.
Key Components:
- High-performance JSON parser (DOM/SAX)
- MessagePack binary format
- Zlib compression streams
- Dynamic value containers
👉 See: Data Module
🚀 Services Module#
Application protocols
The services module implements common application-layer protocols including HTTP/HTTPS client and server, SMTP/SMTPS client, and chunked transfer encoding.
Key Components:
- HTTP/1.1 client and server
- SMTP/SMTPS email client
- Chunked transfer encoding
- Mail message construction
👉 See: Services Module
Internal Structure#
The framework code is internally organized with dependencies between modules:
├─ Core (foundation)
├─ Crypto
├─ Fabric
├─ Data
└─ ServicesNext Steps#
- Start with the Core Module
- Explore each module documentation for details
- Refer to the Doxygen documentation for API reference