Open Source Network Tool

Network Connection Management

A lightweight C-based network connection funneling system with SSL/TLS support. Efficiently manage and route network connections with minimal memory footprint.

C99 Standard
<1MB Footprint
TLS 1.3 Support
funnel.c
// Initialize funnel connection
conn_t *conn = conn_create();

// Configure SSL/TLS
ssl_init(conn, "cert.pem");

// Start listening
tcp_listen(conn, 8443);

// Handle connections
while (conn_accept(conn)) {
    hconn_process(conn);
}
SSL/TLS
Low Latency
Features

Built for Performance

Funnel provides essential networking capabilities with minimal overhead, designed for systems where every byte matters.

Connection Pooling

Efficiently manage multiple connections with intelligent pooling, reducing overhead and improving throughput.

SSL/TLS Support

Built-in OpenSSL integration for secure encrypted connections with TLS 1.2 and TLS 1.3 protocol support.

HTTP Handling

Native HTTP protocol support with efficient parsing and request/response handling capabilities.

Signal Management

Robust signal handling for graceful shutdowns, connection cleanup, and system event responses.

Low Memory

Minimal memory footprint with efficient resource management, perfect for embedded and constrained environments.

Cross-Platform

Compatible with Linux, BSD, and other Unix-like systems using standard POSIX APIs.

Architecture

Modular Design

Funnel is built with a clean, modular architecture that separates concerns and allows for easy extension and maintenance.

funnel.c Main Entry Point
conn.c Connection Manager
hconn.c HTTP Handler
sig.c Signal Handler
tcp.c TCP Operations
ssl.c TLS Encryption
jsmn.c JSON Parser
Core Modules
Security Layer
Utilities
Quick Start

Build in Minutes

Get Funnel up and running with these simple steps. Built with standard Autotools for maximum compatibility.

1

Clone the Repository

Get the source code from GitHub

2

Configure

Run the configure script to set up build

3

Build & Install

Compile and install the binary

Terminal
# Clone the repository
$ git clone https://github.com/animeshkundu/funnel.git
$ cd funnel

# Configure the build
$ ./configure

# Build the project
$ make

# Install (optional)
$ sudo make install

Requirements

GCC or Clang compiler
OpenSSL development libraries
GNU Make
POSIX-compliant OS

Ready to Get Started?

Explore the documentation for detailed guides, API reference, and best practices for using Funnel in your projects.