fRPC-go

License: Apache 2.0 Tests

This is the Go implementation of fRPC, a high-performance RPC framework for designed for performance and stability, and it uses frisbee-go messaging framework under the hood.

This library requires Go1.18 or later.

Important note about releases and stability

This repository generally follows Semantic Versioning. However, this library is currently in Alpha and is still considered experimental. Breaking changes of the library will not trigger a new major release. The same is true for selected other new features explicitly marked as EXPERIMENTAL in the changelog.

Usage and Documentation

Usage instructions and documentation for fRPC is available at https://frpc.io/.

The fRPC is still in very early Alpha. While it is functional and being used within other products we’re building at Loophole Labs, the proto3 spec has a myriad of edge-cases that make it difficult to guarantee validity of generated RPC code without extensive real-world use.

That being said, as the library matures and usage of fRPC grows we’ll be able to increase our testing coverage and fix any edge cases and bugs. One of the major benefits to the RPC framework is that reading the generated code is extremely straight forward, making it easy to debug potential issues down the line.

Unsupported Features

fRPC currently does not support the following features, though they are actively being worked on:

  • Streaming Messages between the client and server
  • OneOf Message Types

Example Proto3 files can be found here.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/loopholelabs/frpc-go. For more contribution information check out the contribution guide.

License

The Frisbee project is available as open source under the terms of the Apache License, Version 2.0.

Code of Conduct

Everyone interacting in the Frisbee project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the CNCF Code of Conduct.

Project Managed By:

https://loopholelabs.io

GitHub

View Github