@alexreg hi, thanks for asking!
There's probably a lot to be said about the differences, but in the end probably the most important motivating factor in Tide is that we're interested in exploring the design space of what an async/await-first frameworks can look like in Rust.
The emphasis is very much on exploring here. We don't believe don't believe the design space of what's possible with async Rust has been exhausted yet, so this is our attempt to contribute. We also hope that by making it modular, others that wish to explore different designs will be able to progress faster than we could.
After all, our slogan is: "a rising tide lifts all boats". And we certainly hope we can stay true to that!
I hope that more or less answers it. Let me know if you have any other questions!
@yoshuawuyts Thanks a lot for the clarification. I like the fact this is sort of a research project, and a practical one... when you say "async", do you specifically mean the async/await functionality built into Rust now, or the more general concept? Because I believe warp and tower-web also have async support, though perhaps they are not "async first" (I'm really not sure).
I think tide is very cool with async/await, I also want to use it ! when you say tower-web and warp , do you also think that actix-web is very well support async, why they were created.
when you say "async", do you specifically mean the async/await functionality built into Rust now, or the more general concept
Both! Async/await opens up new possibilities for API design by lifting restrictions the borrow checker imposed on sharing values beyond yield boundaries.
But I also believe we haven't seen the last of general async designs. If we look at other languages and abstractions, for example we haven't seen much in terms of reactive or config-first frameworks yet.
Or looking at new developments it'd be interesting to see frameworks that can offload part of their workload to the kernel using eBPF filters. Or run entirely on edge compute using WASM.
I feel there's tons of designs to explore, and I'm incredibly excited about the path we're currently exploring with Tide!
@luover personally I'm very happy all the frameworks you mentioned exist! I feel they all explore a unique design space, and bring novel ideas into the Rust ecosystem.
They all support asynchronous operations, but have varying levels of async/await support. It's likely this will change once async/await becomes stable later this year.
Most helpful comment
@alexreg hi, thanks for asking!
There's probably a lot to be said about the differences, but in the end probably the most important motivating factor in Tide is that we're interested in exploring the design space of what an async/await-first frameworks can look like in Rust.
The emphasis is very much on exploring here. We don't believe don't believe the design space of what's possible with async Rust has been exhausted yet, so this is our attempt to contribute. We also hope that by making it modular, others that wish to explore different designs will be able to progress faster than we could.
After all, our slogan is: "a rising tide lifts all boats". And we certainly hope we can stay true to that!
I hope that more or less answers it. Let me know if you have any other questions!