https://github.com/openosaka/castled
Best tunnel for development and kubernetes
https://github.com/openosaka/castled
frp grpc kubernetes kubernetes-testing ngrok tunnel
Last synced: 5 months ago
JSON representation
Best tunnel for development and kubernetes
- Host: GitHub
- URL: https://github.com/openosaka/castled
- Owner: openosaka
- License: mit
- Created: 2024-06-20T08:39:51.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2024-08-09T02:30:35.000Z (10 months ago)
- Last Synced: 2025-01-01T16:38:36.295Z (5 months ago)
- Topics: frp, grpc, kubernetes, kubernetes-testing, ngrok, tunnel
- Language: Rust
- Homepage:
- Size: 370 KB
- Stars: 4
- Watchers: 2
- Forks: 1
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Castle
[](https://crates.io/crates/castled)
[](https://pkg.go.dev/github.com/openosaka/castled)
[](https://github.com/openosaka/castled/actions/workflows/ci.yaml)
[](https://github.com/openosaka/castled/blob/main/LICENSE)Castle is a simple tunnel based on GRPC that allows you to expose your local services to the internet,
but it's **mainly designed for 🌟testing and ✨development purposes**.It resolves the problem of the traffic inside k8s reach your local services, the great
advantage of this idea is that you can mocking any external service in your `_test` file, no matter
which language you are using.You can use this tool when you are considering:
- I want to expose my local service to the kubernetes cluster.
- access the local database, redis, etc from the k8s cluster
- I want to mock a external service(e.g. Google, Slack, etc) when I'm doing integration tests.Basically, this tunnel is primarily for this purpose. If you want to expose your local service to the internet,
[ngrok][ngrok], [frp][frp] or other tools are more suitable for you.[ngrok]: https://ngrok.com/
[frp]: https://github.com/fatedier/frp## Features
- Tcp tunnel
- specify the remote port
- random remote port if not specified
- Udp tunnel
- specify the remote port
- random remote port if not specified
- Http tunnel
- specify the domain
- specify the subdomain
- specify the remote port
- random subdomain if `--random-subdomain` is specified
- random remote port if not specified
- support http/1.1
- Upload file
- Download file
- [ ] support http/2