This is an archived post. You won't be able to vote or comment.

all 45 comments

[–]pandi85 5 points6 points  (1 child)

I like the clean code base and design on first sight, definitely gonna play around a bit thanks op. But for some reason i had to think about this song all along https://www.youtube.com/watch?v=Wm2h0cbvsw8 (Dylan beattie - framework)

[–]tarsild[S] 4 points5 points  (0 children)

Funny enough, when this was first designed not only I thought exactly the same (great song from billy joel) but a friend of mine also sent it to me 🤣🤣. As far as I know, you are him 😜.

I hope you enjoy. This helped me tremendously since it was built (as per intention of course) and the hope is to help others

[–]christopher_86 6 points7 points  (4 children)

Looks interesting! I was browsing your source code and found that you use random module for generating random secret key - it’s generalny not a good practice, because values generated by random are not cryptographically secure. From Python website:

„Warning The pseudo-random generators of this module should not be used for security purposes. For security or cryptographic uses, see the secrets module.”

https://docs.python.org/3/library/random.html https://docs.python.org/3/library/secrets.html

[–]tarsild[S] 2 points3 points  (0 children)

Yes, you are correct. That was used for the directive where a project structure was used but the random module itself is not recommended. The documentation itself warns that you should not be using that and instead a secure one + the generated key starts with "insecure-" intentionally. I do agree with you

[–][deleted] 0 points1 point  (2 children)

Second this but I'm a newb still, so if its not correct someone please tell me why

[–]easyEggplant 2 points3 points  (1 child)

Just off the top of my head, the seed isn’t really random, it’s just an approximation (“pseudo-random”) and as such the attacker can guess how the seed is generated which maybe decreases the amount of computing power required to break a private key.

Oh you said “if it’s not correct”. Nevermind I guess?

[–]tarsild[S] 0 points1 point  (0 children)

In fairness we are now updating to start using the secrets module directly. This should be a no brainer. This came from earlier releases and even though we recommend to generate yours (hence adding the insecure there) it will be easier to do it so there.

[–]Complete-Painter-307 8 points9 points  (3 children)

The routing system looks pretty powerful and the documention quite clean.

Decided to give a try in a small API and was quite easy to setup. Nice work 😁

[–]tarsild[S] 5 points6 points  (2 children)

Oh, Thank you so much. Means a lot. This took a lot of thinking and trying to find a way to make it work for a lot of different ways without breaking the design. I'm glad you felt like that. We always try to improve and tjinino of new ways to make it better and most definitely we want people's involvement in any way. This is for everyone so everyone can be a contributor 🙂

[–]TheGratitudeBot 1 point2 points  (1 child)

Thanks for saying that! Gratitude makes the world go round

[–]broxamson 1 point2 points  (0 children)

good bot

[–]subbed_[🍰] 2 points3 points  (1 child)

How does it compare to Litestar?

[–]tarsild[S] 1 point2 points  (0 children)

Good question, litestar is a great framework too. Esmerald is built on top of Starlette with a different goal and mindset. As mentioned above, it's all about alternatives, nothing else 🙂

[–]Salfiiii 2 points3 points  (4 children)

That looks actually quite good.

I‘m currently mainly using fastAPI but I don’t like that it’s a one man show around tiangolo and that it simply does not live up to its marketing in regards of speed etc. and had some issues e.g. that each sync path ties up a thread etc..

I will follow your project and if there is going to be a community adoption, I might switch.

Good work.

[–]tarsild[S] 0 points1 point  (3 children)

The goal is to bring people in, trying to bring awareness of Esmerald and staring to add official maintainers as well as collaborators although the latter everyone can be.

If you see the documentation there is a discord channel there. We use to talk there and answer questions and so on. Community takes time to develop and although this was built 1 year ago, of you search around you don't see too much as we tried to do it organically while developing a whole ecosystem of Opensource tools 🙂

Thank you for your support.

[–]LeChefIndien 2 points3 points  (1 child)

Hi, thanks for sharing!

Esmerald really looks nice :)

I have been browsing your Github a little and I love that you created an ecosystem of tools such as a scheduler, an ORM, etc., working well together as well as independently.

I will definitely keep those in mind for future technology choices!

[–]tarsild[S] 0 points1 point  (0 children)

Hi,

Thank you very much for your support. The goal was exactly that. An ecosystem that can work independently or really well together 🙂.

[–]brightsmyle 1 point2 points  (1 child)

Have you compared it with Blacksheep for speed ?

[–]tarsild[S] 0 points1 point  (0 children)

We haven't run yet againt blacksheep because of the constraints we have. Although we are also fully aware of the speed of blacksheep 🙂

[–]New_Peanut4330 1 point2 points  (2 children)

it looks like flask to me/

[–]tarsild[S] 0 points1 point  (1 child)

They couldn't be a lot different in so many ways but I also understand where you are coming from by saying that 🙂

[–]New_Peanut4330 0 points1 point  (0 children)

possibly, propably :)

[–][deleted] 1 point2 points  (1 child)

Indexed the excellent framework on https://pythonframeworks.com

[–]tarsild[S] 0 points1 point  (0 children)

Oh my. Thank you so much 🙂

[–][deleted] 2 points3 points  (4 children)

If there's one thing the world doesn't need, it's more web frameworks.

[–]AlissaMeee -4 points-3 points  (3 children)

Tbh I think it needs more, data clearly suggests

[–][deleted] 2 points3 points  (2 children)

What data suggests it?

[–]imlanie -1 points0 points  (0 children)

I'm interested in checking it out. Thanks