sparckles / Robyn

Robyn is a Super Fast Async Python Web Framework with a Rust runtime.
https://robyn.tech/
BSD 2-Clause "Simplified" License
4.24k stars 217 forks source link

Robyn's plan for 2023! ✨ #366

Open sansyrox opened 1 year ago

sansyrox commented 1 year ago

Hey All 👋

2022 was an amazing year for us and we hope that 2023 will be even better. I recently wrote an article telling about our plans for 2023, you can check it out here(https://sanskar.wtf/posts/robyns_plans_for_2023)

In this issue, I would like to talk about a more technical part

~- improve how you get body data~ ~ - when you access the response body, we still need to decode the byte array. I feel that this is an unnecessary step ~ ~ and we should be returning a saner response type by default.~

~- add some sort of performance benchmark integration~ ~ - I want to add a performance benchmark in our CI. This way we are certain if the project is becoming slower or faster~ ~in everychange. I have been given an early access to codspeed(https://codspeed.io/) and I would like to enable the~ ~python integration for it.~

Somethings left to do from 2022:

Feel free to comment with what you think of it and if there are any features that you'd like to have in this roadmap.

XChikuX commented 1 year ago

Better jsonify method

Please use a highly efficient json serializer and de-serializer like: Orjson If you are planning to do it in pure python.


Please keep pydantic data validation in mind wherever it makes sense.

baseplate-admin commented 1 year ago

Better jsonify method

Please use a highly efficient json serializer and de-serializer like: Orjson If you are planning to do it in pure python.

Please keep pydantic data validation in mind wherever it makes sense.

Why not use serde-json for even faster json parsing ?

sansyrox commented 1 year ago

@baseplate-admin , because the last time I checked serde-json required types in the rust side/compile side. However, we want to have an ability to serialize and deserialize without having compile-time typing.

Are you aware if it is possible to achieve this now?

baseplate-admin commented 1 year ago

Apologies. My knowledge in rust is modest at best.

My finds came from OrJSON. As OrJson uses serde_json

https://github.com/ijl/orjson/blob/c2514ab9ecdb9d42945f3fc6e18475b88bef8ec2/Cargo.toml#L59-L60

I was thinking to apply the logics at rust backend level to remove the python overhead.

StandinKP commented 5 months ago

@sansyrox Is this Roadmap updated for this year? What are we planning on adding this year?

sansyrox commented 5 months ago

Hey @StandinKP 👋

I have an updated Roadmap, will publish by next week :D