20 releases

2.1.9 Aug 8, 2024
0.3.1 Apr 3, 2025
0.2.9 Mar 27, 2025
0.2.3 Oct 29, 2024
0.1.5 Aug 31, 2024

#1483 in Network programming

Download history 25/week @ 2024-12-11 3/week @ 2025-01-22 8/week @ 2025-02-19 289/week @ 2025-03-05 387/week @ 2025-03-12 694/week @ 2025-03-19 614/week @ 2025-03-26

1,984 downloads per month
Used in on-prem-lambda-events

Apache-2.0

5.5MB
127K SLoC

Rust 76K SLoC // 0.0% comments Go 51K SLoC // 0.0% comments

On Prem Protocol

This project provides connectivity to the User gRPC Server of the On Prem control plane. The default instance of the control plane runs in the cloud at https://api.on-prem.net.

Architecture

graph TB;

subgraph Clients[Clients / Edge]
agent[Agent]
cli[CLI]
console[Console]
end

subgraph API[Control Plane]
agent_grpc_server[Agent gRPC Server :3004]
api_endpoint[API Aggregation Server :3000]
lambda_grpc_server[Lambda gRPC Server :3002]
reconfig_grpc_server[Reconfig gRPC Server :3003]
rest_endpoint[REST Server :3006]
storage_grpc_server[Storage gRPC Server :3001]
user_grpc_server[User gRPC Server :3005]
end

subgraph Backing Services
mongo[(Config)]
prometheus[(Metrics)]
redis[(Cache & Coordination)]
end

agent <-- tunnel stream --> api_endpoint;
agent_grpc_server ---> reconfig_grpc_server;
agent_grpc_server ---> storage_grpc_server;
api_endpoint <--> agent_grpc_server;
api_endpoint ---> rest_endpoint;
api_endpoint --> user_grpc_server;
cli --> api_endpoint;
console ---> api_endpoint;
lambda_grpc_server ---> storage_grpc_server;
reconfig_grpc_server --> storage_grpc_server;
rest_endpoint ---> user_grpc_server;
storage_grpc_server ---> mongo;
storage_grpc_server ---> prometheus;
storage_grpc_server ---> redis;
user_grpc_server -- use tunnel --> agent_grpc_server;
user_grpc_server ---> lambda_grpc_server;
user_grpc_server ---> reconfig_grpc_server;
user_grpc_server ---> storage_grpc_server;

Building

$ make dependencies
$ make generate
$ make

Testing

$ make check

Dependencies

~5–14MB
~153K SLoC