https://github.com/clubpay/ronykit
API Framework supporting REST and RPC.
https://github.com/clubpay/ronykit
framework go golang middleware performant rest-api restful-api ronykit router rpc rpc-framework server websocket
Last synced: about 1 month ago
JSON representation
API Framework supporting REST and RPC.
- Host: GitHub
- URL: https://github.com/clubpay/ronykit
- Owner: clubpay
- License: bsd-3-clause
- Created: 2021-12-26T07:19:20.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2025-06-28T07:14:32.000Z (9 months ago)
- Last Synced: 2025-06-28T08:25:52.663Z (9 months ago)
- Topics: framework, go, golang, middleware, performant, rest-api, restful-api, ronykit, router, rpc, rpc-framework, server, websocket
- Language: Go
- Homepage:
- Size: 8.93 MB
- Stars: 33
- Watchers: 13
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.MD
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- awesome-go-with-stars - Ronykit - 03-17 | (Web Frameworks / Utility/Miscellaneous)
- awesome-go-plus - Ronykit - Web framework with pluggable architecture and very performant.  (Web Frameworks / Utility/Miscellaneous)
- awesome-go - clubpay/ronykit
- awesome-go - Ronykit - Web framework with pluggable architecture and very performant. (Web Frameworks / Utility/Miscellaneous)
- awesome-go-cn - Ronykit
- fucking-awesome-go - Ronykit - Web framework with pluggable architecture and very performant. (Web Frameworks / Utility/Miscellaneous)
- awesome-go - Ronykit - Web framework with pluggable architecture and very performant. (Web Frameworks / Utility/Miscellaneous)
README
# RonyKIT
[](https://codecov.io/gh/clubpay/ronykit)
RonyKIT is a collection of tools designed to be both extendable and flexible, enabling the rapid development of a
complete API/Edge server.
With the RonyKIT framework, you can create API handlers that support both RPC and REST style APIs without the need to
rewrite the
endpoint layer multiple times. The philosphy of Ronykit is to define the most used building blocks of the software as
proper minimal
viable interfaces and provide some standard implementations which make onboarding very quick and also let you to
implement your own
if you have a very specific case. The declarative force of defining contracts in Ronykit makes extending the code much
easier and
by the help of proper templating you can write the usecase and let the most boilerplates like stubs, tests, deployments
etc to be
auto-generated.
If you are seeking a framework to develop your API/Edge server, you can directly use the `rony` package. This package
provides an
intuitive framework, leveraging Go Generics to offer a clean and user-friendly API. This is the recommended approach for
using
the RonyKIT framework. However, if you require greater control over your API server and have concerns about performance
and
memory usage, you can directly utilize the `kit` package, which forms the core of the RonyKIT framework.

- For more information about the `rony` package, visit [rony](./rony/README.MD).
- For more information about the `kit` package, visit [kit](./kit/README.MD).
- For more information about the `stub` package, visit [stub](./stub/README.MD).
# Getting Started
Read the [Getting Started Guide](./GETTING_STARTED.MD) to learn how to get started with RonyKIT.
# Performance
Benchmarks may not provide precise measurements of a framework's performance; however, they can offer
insights into the overhead a framework might introduce to your actual business logic. You can see a
[benchmark](https://www.techempower.com/benchmarks/#hw=ph&test=json§ion=data-r22&l=zijocf-cn3) as a reference to
evaluate how Ronykit performs in comparison to other Go frameworks.

### Project Structure
RonyKit is organized as a Go workspace with multiple modules:
- **Core modules**:
- `kit`: Core toolkit and utilities
- `rony`: Main server implementation
- `flow`: Workflow-related functionality
- `stub`: Stub generation utilities
- `boxship`: Build/deployment tools
- `ronyup`: Project setup and upgrade tools
- `contrib`: Contributions and extensions
- `util`: Utility packages
- **Standard implementations**:
- Clusters: `p2pcluster`, `rediscluster`
- Gateways: `fasthttp`, `fastws`, `silverhttp`
- **Examples**: Various example applications demonstrating different features
### Build Commands
The project uses a Makefile for common operations:
```bash
# Install required tools
make setup
# Run tests
make test
# Clean up the project
make cleanup
# Update version (patch)
make new-version-patch
# Update version (minor)
make new-version-minor
```