Neoroute is a batteries-included remote procedure call (RPC) framework for Golang, running exclusively on top of Web primitives (currently HTTP and WebSocket). With our rich tooling, you get code generation, an interactive debugger for sending requests and a lot more with minimal setup. We have everything you love about RPC and web frameworks, all in one fully integrated package and ecosystem.
To use Neoroute you need Go version 1.27 or higher. Just add it to your project using go:
go get -u github.com/Liphium/neoroute@latest
We provide the entire documentation you’re seeing right now for AI as well. It’s index is available at ai.liphium.dev/neoroute/index.md.
You can install our liphium-neoroute skill that contains this information and some rules for Neoroute using:
npx skills add liphium/dev@liphium-neoroute
Your agent will love it.
Neoroute is quite a simple RPC framework, but it has lots of features that you might also expect in normal Web Frameworks. This is by design, as we want Neoroute to be usable for all use cases: From game servers to web applications and even mobile apps, anything that needs a server should be able to use Neoroute.
We provide a rich learning path that you can read through in about 30 minutes or less. It gives you a clear guide through the entire documentation and shows you what pages to read when. After going through it, you should have a really good understanding of Neoroute and its features.
There are various examples available in our main repository. Feel free to check them out to get a feel for the framework.
We don’t have any hard rules, but please keep in mind the following:
If you then want to contribute, follow this simple process:
We really appreciate any contribution, even if it’s just fixing a little thing or improving some documentation.
Thanks to everyone who contributed to Neoroute!
There aren’t actually lots of things we want to add to Neoroute. The framework is already powerful enough for basically anything and the current abstractions cover about everything you would wanna build. However, there are a few central pieces still missing, but ones that don’t require you to change even a line of code.
Neoroute has been built because we wanted a framework for all kinds of servers. But there is one important part still missing: Unreliable transport.
Especially for games, this is kind of important and we’ve already got a test implementation done in the main repository. The only reason we’ve not published it yet is that we want to make sure we do this right. WebTransport is a lot harder to get working than something like WebSockets because you essentially get access to raw QUIC streams.
We’ll update you when we have it ready.
While neogen is already super powerful and can generate a lot of code for you, there are certain aspects of msgp, the library we use for MessagePack, that we don’t currently support.
Those are mainly the following things:
We don’t know when we’ll work on any of these features, but this is what the future holds for Neoroute. If you of course feel like anything important is missing from the framework, let use know!