https://github.com/rss3-network/gatewayflowcontroller
Flow Controller for Gateway
https://github.com/rss3-network/gatewayflowcontroller
traefik-plugin
Last synced: 4 months ago
JSON representation
Flow Controller for Gateway
- Host: GitHub
- URL: https://github.com/rss3-network/gatewayflowcontroller
- Owner: RSS3-Network
- License: mit
- Created: 2024-03-19T04:31:56.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-08-06T12:43:21.000Z (11 months ago)
- Last Synced: 2025-01-21T20:48:41.406Z (5 months ago)
- Topics: traefik-plugin
- Language: Go
- Homepage:
- Size: 4.27 MB
- Stars: 0
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: ReadMe.md
- License: LICENSE
Awesome Lists containing this project
README
# RSS3 Gateway Flow Controller
## About
This is a Traefik plugin, which controls the inbound traffic, useful for billing related requirements.
We use this with the [Payment Processor](https://github.com/RSS3-Network/Payment-Processor).
Or you can also develop your own processors.
## Questions
### Why vendor dependencies
According to [traefik plugin demo's readme](https://github.com/traefik/plugindemo/blob/8a77aea29f9038903ab44059e2aa42a37ff52752/readme.md?plain=1#L27-L28),
> Plugin dependencies must be [vendored](https://golang.org/ref/mod#vendoring) for each plugin.
> Vendored packages should be included in the plugin's GitHub repository. ([Go modules](https://blog.golang.org/using-go-modules) are not supported.)So we have to push the vendor directory.
### What is the connector
Traefik doesn't like package `unsafe` (which has been widely used in many dependencies), so we have to split a dedicated `connector` to call them, contact with our plugin through `rpc` .
### Why this repo name
Lint doesn't like `GatewayFlowController_test` because of mixed camelCase and snake_case.
Traefik doesn't like `plugin` because of unmatched package name.
So in order to satisfy both of them, we have to use this long piece of word.