this post was submitted on 19 Jul 2023
12 points (100.0% liked)
Golang
2206 readers
1 users here now
This is a community dedicated to the go programming language.
Useful Links:
Rules:
- Posts must be relevant to Go
- No NSFW content
- No hate speech, bigotry, etc
- Try to keep discussions on topic
- No spam of tools/companies/advertisements
- It’s OK to post your own stuff part of the time, but the primary use of the community should not be self-promotion.
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Hey, I'm happy to share with you a project I've been dedicated to for the past few months: Fox.
https://github.com/tigerwill90/fox
Fox is a lightweight HTTP router that provides an API similar to well-known projects such as Gin and Echo. But Fox has a unique strength: it supports mutations on its routing tree at runtime, while concurrently handling requests. It accomplishes this using a Concurrent Radix Tree, which supports lock-free reads and concurrent writes.
It is especially designed for applications that require changes at runtime to their routing structure based on user input, configuration changes, or other runtime events but it's also suitable for other use cases. The routing rules are relatively flexible, and in most scenarios, Fox outperforms Gin in terms of performance.
While the project is not yet at v1, I've already put it to the test. At my workplace, we use Fox for our main API gateway, handling millions of requests daily.
I'd love to get your feedback and insights, so please feel free to check it out and let me know your thoughts.
Cool project! That readme gives me a "I like your funny words, magic man" reaction, but I know it's just because I am not that much into networking and concurrent stuff lol
Those benchmarks already speaks for themselves, and the fact that you are using it in your workplace already shows the awesomeness of your project :)
Thank you for your kind words! I completely agree that the README might be a bit unnecessarily heavy on technical jargon. I appreciate you pointing that out - I will work on making it more comprehensible.