join 1.0
lightweight network framework library
Loading...
Searching...
No Matches
join

High-Performance Modular Networking for the Linux Ecosystem

Test Status Security Status Codacy Badge Codacy Badge Codecov Coveralls Doxygen GitHub Releases GitHub License

join is a modular C++ network runtime framework for Linux, designed for low-latency, high-throughput, and system-level networking.

It provides a set of composable libraries covering networking primitives, concurrency, serialization, cryptography, and Linux network fabric management.


🚀 Design Goals

  • Linux-native networking (sockets, netlink, raw sockets)
  • Event-driven and reactor-based architecture
  • Predictable latency and high throughput
  • Strong separation of concerns via modular libraries
  • High test coverage and correctness-first design
  • Suitable for infrastructure, control-plane, and runtime components

✨ Why join?

join focuses on providing robust, efficient building blocks for:

  • network runtimes
  • system services
  • control planes
  • high-performance servers
  • infrastructure tooling

🏗 Modular Architecture

The framework is a collection of specialized modules that build upon one another:

Module Purpose Highlights
core Foundation Epoll Reactor, TCP/UDP/TLS, Unix Sockets, Thread Pools, Mutexes.
fabric Network Control Netlink Interface Manager, ARP client, DNS Resolver.
crypto Security OpenSSL Wrappers, HMAC, Digital Signatures, Base64.
data Serialization High-perf JSON (DOM/SAX), MessagePack, Zlib Streams.
services Protocols HTTP/1.1 (Client/Server), SMTP, Mail Parsing.

🛠️ Build & Integration

Prerequisites

Ensure you have OpenSSL, Zlib, and GTest (for testing) installed on your system:

sudo apt install libssl-dev zlib1g-dev libgtest-dev libgmock-dev

‍OpenSSL is required by join-core as TLS support is part of the core runtime.

Build from Source

git clone https://github.com/joinframework/join.git
cd join
cmake -B build -DCMAKE_BUILD_TYPE=Release -DJOIN_ENABLE_TESTS=ON
cmake --build build

Run Tests

ctest --test-dir build --output-on-failure

📦 Integration

join exports standard CMake targets. To use it in your project:

find_package(join REQUIRED)
target_link_libraries(your_app PRIVATE
join::core
join::fabric
join::services
)

📊 Quality & Performance

Every commit is validated against an extensive test suite to ensure stability in concurrent environments:

  • 1000+ Unit Tests covering networking, concurrency, and data parsing.
  • Security: Continuous scanning via Codacy and GitHub Security workflows.

📖 Documentation