14 releases

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

#875 in Network programming

Download history 352/week @ 2024-08-05 536/week @ 2024-08-12 323/week @ 2024-08-19 475/week @ 2024-08-26 835/week @ 2024-09-02 202/week @ 2024-09-09 89/week @ 2024-09-16 51/week @ 2024-09-23 38/week @ 2024-09-30 439/week @ 2024-10-07 19/week @ 2024-10-14 78/week @ 2024-10-21 240/week @ 2024-10-28 12/week @ 2024-11-04 21/week @ 2024-11-11

352 downloads per month
Used in on-prem-lambda-events

Apache-2.0

5.5MB
119K SLoC

Rust 72K SLoC // 0.0% comments Go 47K 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
~164K SLoC