One thing I find disappointing though, is that this framework is built on top of FastAPI. I feel it’s a bad idea to build on top of what’s basically a one-man project. No matter how popular that project is.
Designing a Pure Python Web Framework
11–20 of 59 posts
Re: Designing a Pure Python Web Framework
#12This looks like a really neat project! The examples certainly feel less “script-like” than streamlit. One thing I find disappointing though, is that this framework is built on top of FastAPI. I feel it’s a bad idea to build on top of what’s basically a one-man project. No matter how popular that project is.
Re: Designing a Pure Python Web Framework
#13This looks like a really neat project! The examples certainly feel less “script-like” than streamlit. One thing I find disappointing though, is that this framework is built on top of FastAPI. I feel it’s a bad idea to build on top of what’s basically a one-man project. No matter how popular that project is.
FastAPI has been working well for us, but we're not strongly coupled to it - in the future it would be easy to swap it out if needed.
Re: Designing a Pure Python Web Framework
#14This looks like a really neat project! The examples certainly feel less “script-like” than streamlit. One thing I find disappointing though, is that this framework is built on top of FastAPI. I feel it’s a bad idea to build on top of what’s basically a one-man project. No matter how popular that project is.
Yeah - I've said this elsewhere, but I slightly prefer Litestar over FastAPI for this reason.
Re: Designing a Pure Python Web Framework
#15My main complaint right now is that it's quite a bit of work to build authentication. I think there are some examples somewhere that show you how to do it. But given, how common it would be for people to use authentication, it should be built in as a first-class object.
Re: Designing a Pure Python Web Framework
#16Re: Designing a Pure Python Web Framework
#17I have used this to build an internal tool, and that was quite a nice experience. My main complaint right now is that it's quite a bit of work to build authentication. I think there are some examples somewhere that show you how to do it. But given, how common it would be for people to use authentication, it should be built in as a first-class object.
Since then, I've built a few authentication libraries that might be of interest:
https://github.com/masenf/reflex-local-auth https://github.com/masenf/reflex-magic-link-auth https://github.com/martinxu9/reflex-google-auth (documentation WiP)
The problem with having auth built in is that it's been hard to find a solution that actually works for a majority of use cases. That said, as these auth libraries get more popular and refined, they might be moved into the reflex-dev organization as officially maintained components, or even integrated with the core framework.
Re: Designing a Pure Python Web Framework
#18I was wondering if WebAssembly has been considered as a compilation target instead of React? Are there major down sides to WebAssembly?
Re: Designing a Pure Python Web Framework
#19I got a bit frustrated when it came to managing state though. I struggled to mutate and view the same state across all web users, instead of creating state per user that connects. However this is still a great framework I’ll definitely revisit in the future!
Re: Designing a Pure Python Web Framework
#20Can you call it pure python if it compiles to React? Seems like the abstraction just makes it harder to debug
All programming is abstractions, unless you're using machine code. Abstractions don't necessarily make debugging harder -- done the right way, they can make it easier. (Yes, you can call it "pure python" if it compiles to something else, because every programming language compiles to something else.)
10100010 00000000
10111101 00010011 00001000
10011101 00000000 00000100
11101000
11100000 00101100
11010000 11110101
01100000
01010010 01100101 01100001 01101100
00100000 01110000 01110010 01101111
01100111 01110010 01100001 01101101
01101101 01100101 01110010 01110011
00100000 01100011 01101111 01100100
01100101 00100000 01101001 01110100
00100000 01101001 01101110 00100000
01100010 01101001 01101110 01100001
01110010 01111001 00000000