-
Notifications
You must be signed in to change notification settings - Fork 412
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improve Literal
path matching via state machine
#2960
Comments
/bounty $1250 for benchmarks and compilation to super fast state machines. Benchmarks should prove superior performance and happy path should be zero allocation, or as close as is theoretically possible. |
💎 $1,250 bounty • ZIOSteps to solve:
Thank you for contributing to zio/zio-http! Add a bounty • Share on socials
|
/attempt #2960
|
@987Nabil: Reminder that in 7 days the bounty will become up for grabs, so please submit a pull request before then 🙏 |
The bounty is up for grabs! Everyone is welcome to |
hey @987Nabil you working on these, i would like to do this ?? |
Yes, i am |
/attempt #2960 Options |
@hoklims: Reminder that in 7 days the bounty will become up for grabs, so please submit a pull request before then 🙏 |
The bounty is up for grabs! Everyone is welcome to |
/attempt #2960 Options |
Please do not attempt this issue anymore. I already came to a conclusion and I have JMH benchmarks implemented and some fixes that are unrelated to the issue but will make the routing faster. We are not able to use state machines. |
@promisingcoder: Reminder that in 7 days the bounty will become up for grabs, so please submit a pull request before then 🙏 |
The bounty is up for grabs! Everyone is welcome to |
💡 @987Nabil submitted a pull request that claims the bounty. You can visit your bounty board to reward. |
Matching on path literals is currently done by set operations on a set of strings.
The idea would be to improve this, by creating a state machine, that transitions to the next state based on the chars of all the possible alternative path segments.
For example, if we have two segments on the same level
aa
andab
, we can only proceed if the first char is ana
, the seconda
orb
.Also we might be able to make a check based on the input length and fast exist if non of the possible segments has the same length.
This requires benchmarking first. So we can compare the current to the state machine version.
The text was updated successfully, but these errors were encountered: