9 releases
0.5.5 | Jun 12, 2024 |
---|---|
0.5.4 | May 30, 2024 |
0.4.4 | May 18, 2024 |
#2055 in Network programming
47KB
814 lines
krossbar-hub
Krossbar bus hub
The binary acts as a hub for service connections. On request it makes a UDS pair and sends corresponding sockets to each of the peers, which afterward use the pair for communication. The only known point of rendezvous fot the services is the hub socket.
The hub uses krossbar_bus_common::DEFAULT_HUB_SOCKET_PATH for hub socket path and krossbar_bus_common::DEFAULT_SERVICE_FILES_DIR for service files dir by default. These can be changed using cmd args.
Created socket has 0o666 file permission to allow service connections.
Service files
During service registration and later for all connection requests the hub uses permission system to check if the service is allowed to do what it's trying to do.
Service file filename identifies client service name. The file itself contains executable glob for which it's allowed to register the service, and a list of client names, who are allowed to connect to the service.
Basic service file com.example.echo.service
may look like the following:
{
"exec": "/data/krossbar/*",
"incoming_connections": ["**"]
}
See lib examples directory for service files examples.
Building
Build manually or use cargo install krossbar-bus-hub
to install.
Usage:
Krossbar bus hub
Usage: krossbar-bus-hub [OPTIONS]
Options:
-l, --log-level <LOG_LEVEL>
Log level: OFF, ERROR, WARN, INFO, DEBUG, TRACE [default: TRACE]
-a, --additional-service-dirs <ADDITIONAL_SERVICE_DIRS>
Additional service files directories [default: []]
-s, --socket-path <SOCKET_PATH>
Hub socket path [default: /var/run/krossbar.bus.socket]
-h, --help
Print help
-V, --version
Print version
Dependencies
~13–24MB
~353K SLoC