The ChirpStack Network Server components are using gRPC for inter-component communication. The definitions of these interfaces can be found in the form of
.proto files in the API folder of the source repository:
- api/as/as.proto: Application Server interface
- api/ns/ns.proto: Network Server interface
- api/nc/nc.proto: Network Controller interface
Client / server stubs
Each subdirectory (e.g.
nc) provides Go client code and server stubs, which means you can import these as packages when using Go. When using other programming languages, you'll need to generate the client and / or server stubs yourself (which is thanks to gRPC fairly easy).
gRPC has currently support for: C++, Java, Python, Go, Ruby, C#, Node.js, Android Java, Objective-C and PHP.
Please refer to the gRPC getting started guide for more information.