12 releases

2.1.9 Aug 8, 2024
0.2.1 Sep 9, 2024
0.1.9 Sep 3, 2024
0.1.5 Aug 31, 2024

#492 in Network programming

Download history 495/week @ 2024-08-08 587/week @ 2024-08-15 136/week @ 2024-08-22 1119/week @ 2024-08-29 310/week @ 2024-09-05 217/week @ 2024-09-12

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

Apache-2.0

5.5MB
124K SLoC

Rust 75K SLoC // 0.0% comments Go 49K 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 Endpoint :3000]
lambda_grpc_server[Lambda gRPC Server :3002]
reconfig_grpc_server[Reconfig gRPC Server :3003]
rest_endpoint[REST Endpoint :3006]
storage_grpc_server[Storage Server :3001]
user_grpc_server[User gRPC Server :3005]
end

subgraph Backing Services
mongo[(MongoDB)]
prometheus[(Prometheus)]
redis[(Redis)]
stripe[Stripe]
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;
user_grpc_server -- metered billing --> stripe

Building

$ make dependencies
$ make generate
$ make
$ make check

Dependencies

~6–14MB
~162K SLoC