49 releases (6 stable)

1.1.0-rc.1 Jul 25, 2024
1.0.5 Oct 14, 2024
1.0.2 Jun 3, 2024
1.0.0-rc.1 Mar 19, 2024
0.2.0 Apr 20, 2017

#60 in Network programming

Download history 214/week @ 2024-07-20 136/week @ 2024-07-27 2/week @ 2024-08-03 37/week @ 2024-09-14 4/week @ 2024-09-21 43/week @ 2024-09-28 1/week @ 2024-10-05 178/week @ 2024-10-12 23/week @ 2024-10-19 4/week @ 2024-10-26 2/week @ 2024-11-02

207 downloads per month

AGPL-3.0

1.5MB
38K SLoC

sozu, a HTTP proxy

This project wraps the sozu_lib library to make it scalable and dynamically configured. Each single threaded event loop is started in a worker process that receives configuration commands through anonymous unix sockets.

This executable requires a configuration file in the TOML format, that describes the worker types and numbers, along with global information. This file can describe clusters handled by the proxy, but it is more recommended to use the command unix socket, through which the proxy listens for orders or configuration changes. The path of that unix socket is set in the configuration file.

Command socket message format

The proxy receives orders through a unix socket. The path to this unix socket can be defined by the command_socket option in the TOML configuration file.

The messages are sent as binary, using protobuf, separated by the 0 byte.

Their format is defined in ../command/command.proto. Additionally, the provides the necessary channels to communicate with the command socket.

Dependencies

~24–37MB
~722K SLoC