quilkin
workers-chat-demo
Our great sponsors
quilkin | workers-chat-demo | |
---|---|---|
7 | 6 | |
1,218 | 795 | |
3.0% | 4.0% | |
8.9 | 4.2 | |
3 days ago | about 2 months ago | |
Rust | JavaScript | |
Apache License 2.0 | BSD 3-clause "New" or "Revised" License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
quilkin
- Release: Quilkin v0.7.0 — a UDP proxy specifically designed for large scale gameservers
- Announcing Quilkin 0.6: A UDP Proxy designed for gameservers
-
How can I get a reverse proxy to work for my Space Engineers game server?
Quilkin should work for this. Set up one client on your VPS, then set up a second client on a host somewhere inside your network. Connect both instances together and have the host on your network forward traffic to the 27016 endpoint
- Announcing Quilkin 0.4.0: Now with Improved CLI, builtin xDS, and GeoIP support
- Show HN: Hathora – Multiplayer Game Development Made Easy
-
DoS Attacks against my Online Game
The firewall would need to be able to handle all the DDoS traffic as well, since your current idea would still pass the game server's IP back to a client. This is doable if you're hosting on a cloud provider and let their firewalls filter the traffic before hitting the game server.
Embark Studios recently open sourced (in alpha) a UDP proxy[1] designed for games that lets you implement a load balancing layer. This allows you to remove servers in the load balancing layer in the event that it comes under attack, allowing the game server to stay up and only having to disconnect a portion of players connected to the attacked loadbalancer. Having a proxy layer is also how Steam protects game servers using the Steam Datagram Relay[2].
[1]: https://github.com/googleforgames/quilkin
- Quilkin: A non-transparent UDP proxy written in Rust
workers-chat-demo
-
asyncio + multiprocessing. Issues with pickling complex python objects.
This idea was also sparked from cloudflares chat room example using something on their platform the call durable objects. But instead of offloading each chat room to a durable object I wanted to try to offload it to a process.
-
When Serverless really shines (and when to avoid it)
If you want to see a code example of a stateful serverless worker, this durable object chat demo is kinda neat: https://github.com/cloudflare/workers-chat-demo
-
Ask HN: What's a global, low throughput, low latency message bus
If you wanted something where you could get pretty far without spending any money, Cloudflare Workers + Durable Objects would be an interesting path. You would have to implement some of the functionality yourself, but there are some examples.
Like this example chat app: https://github.com/cloudflare/workers-chat-demo/blob/master/... It supports private chat rooms, which is somewhat analogous to a pub sub topic.
- OAuth with Cloudflare Workers on a Statically Generated Site
-
Cloudflare’s Pace of Innovation
Durable Objects[0] let you store data on the edge and provide a lot more than a key/value store. This is a primitive you could build arbitrary databases on top of.
The edge chat demo[1] is a working, scalable real-time chat service hosted entirely on the edge using Workers + Durable Objects, even featuring per-user cross-room rate limiting. As written, it can support millions of chat rooms and users, and it's about 500 lines of code.[2]
The benefit here is that it's much easier to build scalable distributed systems on Workers and Durable Objects than on other platforms. The fact that they run on the edge as close to end users as possible is just a bonus.
[0] https://blog.cloudflare.com/introducing-workers-durable-obje...
[1] https://edge-chat-demo.cloudflareworkers.com/
[2] https://github.com/cloudflare/workers-chat-demo/blob/master/...
(Disclosure: I'm the tech lead for Cloudflare Workers.)
-
DoS Attacks against my Online Game
Have you looked into using a serverless pub/sub model, like Cloudflare's Workers KV? The example they give is a simple IRC-like distributed chatroom (https://github.com/cloudflare/workers-chat-demo), but theoretically it may work for games too.
Player state can be stored in a decentralized key-value store that Cloudflare manages. They absorb all the DDoS and handle replication between edge nodes. You don't see any of that. https://www.cloudflare.com/products/workers-kv/
Or maybe it was their Durable Objects product... I forget how that's different from Workers KV: https://developers.cloudflare.com/workers/learning/using-dur...
Then each game client uses a worker to access that KV, and Cloudflare will route that worker to its nearest edge node and retrieve the state from there (which was previously replicated a moment ago, internal to Cloudflare's infrastructure).
https://workers.cloudflare.com/
I don't know if this would result in acceptable latency, but it could help with DDOS at least.
What are some alternatives?
sozu - Sōzu HTTP reverse proxy, configurable at runtime, fast and safe, built in Rust. It is awesome!
miniflare - 🔥 Fully-local simulator for Cloudflare Workers. For the latest version, see https://github.com/cloudflare/workers-sdk/tree/main/packages/miniflare.
gridia
krustlet - Kubernetes Rust Kubelet
veloren - An open world, open source voxel RPG inspired by Dwarf Fortress and Cube World. This repository is a mirror. Please submit all PRs and issues on our GitLab page.
Sprocket
geckos.io - 🦎 Real-time client/server communication over UDP using WebRTC and Node.js http://geckos.io
e2core - Server for sandboxed third-party plugins, powered by WebAssembly
rathole - A lightweight and high-performance reverse proxy for NAT traversal, written in Rust. An alternative to frp and ngrok.
wrangler-legacy - 🤠 Home to Wrangler v1 (deprecated)
matchbox - Painless peer-to-peer WebRTC networking for rust wasm (and native!)
awesome-paas - A curated list of PaaS, developer platforms, Self hosted PaaS, Cloud IDEs and ADNs.