Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/toksdotdev/murundiri
โ Blazing fast and configurable idempotency reverse-proxy designed for scale.
https://github.com/toksdotdev/murundiri
idempotency idempotency-support proxy reverse-proxy scale stand-alone
Last synced: about 1 month ago
JSON representation
โ Blazing fast and configurable idempotency reverse-proxy designed for scale.
- Host: GitHub
- URL: https://github.com/toksdotdev/murundiri
- Owner: toksdotdev
- License: mit
- Created: 2020-03-05T18:42:14.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2023-07-23T07:47:39.000Z (over 1 year ago)
- Last Synced: 2024-05-16T08:15:12.428Z (7 months ago)
- Topics: idempotency, idempotency-support, proxy, reverse-proxy, scale, stand-alone
- Language: Rust
- Homepage:
- Size: 71.3 KB
- Stars: 2
- Watchers: 2
- Forks: 1
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-blazingly-fast - murundiri - โ Blazing fast and configurable idempotency reverse-proxy designed for scale. (Rust)
README
# ๐ฎMurundiri
Murundiri is a blazing fast and configurable idempotency reverse-proxy designed for scale.
## Features
- It can exist as either a `proxy` or `stand-alone` service.
- Allows support for integration with a redis cluster for caching.
- Supports redis clusters (at least 3).
- Easily configuration via a `.yaml` file.
- Supports all HTTP verbs.
- Supports the following actions:
- Service redirection (to any URI)
- Returning custom JSON messages.
- Supports TTL for idempotency (i.e. time before idempotency expires)## Important
The core implementation has been implemented, although, this isn't ready for production use yet.
## Roadmap
- [x] Implement murundiri config parser
- [x] Add reverse proxy
- [x] Implement proxy request interceptor
- [x] Validate request info based on idepotency rule
- [ ] Cache idempotency fields to redis
- [x] Implement idempotency support.
- [ ] Support 100% async for redis client ( i.e. both `normal` or `cluster` mode).
- [x] Support mounting of proxy on custom `ip` & `port`.
- [ ] Add proper Document the config file
- [ ] Add TLS support.
- [ ] Support infinity idempotency TTL.## Contributing
If you find any issue, bug, or missing feature, please kindly create an issue or submit a pull request, as it will go a long way in helping other [Rustaceans](https://www.rust-lang.org/community) grow.
## License
This repository is open-sourced software licensed under the [MIT](./LICENSE) license.