A high-performance, lightweight, and modular Web Routing & Network Proxy Engine written in pure C.
webstrada is built for microservices, edge computing, and custom embedded systems that require microsecond-level routing precision without the overhead of heavy web enterprise frameworks. It acts as a super-fast traffic orchestrator, handling HTTP requests, path routing, and upstream proxying with a minimal memory footprint.
- ⚡ Zero-Copy Routing: Highly optimized path matching and request parsing using standard C memory mechanics.
- 🛡️ Lightweight Proxying: Forward HTTP/HTTPS traffic efficiently to backend upstreams or microservices.
- 🧩 Modular Architecture: Easily extendable with custom plugins or handlers for request modification and logging.
- 💻 Low Resource Footprint: Ideal for containerized cloud environments (Docker) and resource-constrained edge hardware.
To compile webstrada, you will need a modern C compiler (gcc or clang), cmake, and standard network socket development headers.
- Ubuntu / Debian:
sudo apt-get install build-essential cmake
- Arch Linux:
sudo pacman -S base-devel cmake
-
Clone the repository:
git clone https://github.com cd webstrada -
Compile the binary:
mkdir build && cd build cmake -DCMAKE_BUILD_TYPE=Release .. make -j\$(nproc)
-
Install the service:
sudo make install
Run webstrada by passing a configuration file or defining your routing paths via the command line interface:
webstrada --config ./config.json --port 8080webstrada --listen 0.0.0.0:80 --upstream 127.0.0.1:3000We welcome structural performance enhancements, bug fixes, and feature requests to make webstrada even faster!
- Fork the project.
- Create your feature branch (
git checkout -b feature/AmazingFeature). - Commit your changes (
git commit -m 'Add some AmazingFeature'). - Push to the branch (
git push origin feature/AmazingFeature). - Open a Pull Request.
This project is licensed under the GNU Lesser General Public License v3.0 (LGPL-3.0) - see the LICENSE file for details.
Developed with ❤️ by Boris Barbulovski (bokic).