reactiverse / es4x

🚀 fast JavaScript 4 Eclipse Vert.x
https://reactiverse.io/es4x/
Apache License 2.0
878 stars 75 forks source link

Is es4x production ready? #536

Open Gondolav opened 3 years ago

Gondolav commented 3 years ago

Hello, amazing work, congrats! I was wondering, is es4x production ready?

pmlopes commented 3 years ago

@Gondolav thanks!

es4x, is just a special launcher for Eclipse Vert.x. Vert.x itself is a very mature project that is running in production in many world known companies and powers many other frameworks/libraries.

What es4x does is, plugging to existing extension points of vert.x, for example:

https://github.com/reactiverse/es4x/blob/develop/es4x/src/main/java/io/reactiverse/es4x/ES4X.java

Extends the vert.x launcher

https://github.com/reactiverse/es4x/blob/develop/es4x/src/main/java/io/reactiverse/es4x/ESVerticleFactory.java

Implements a verticle factory

And:

https://github.com/reactiverse/es4x/blob/develop/es4x/src/main/java/io/reactiverse/es4x/Runtime.java https://github.com/reactiverse/es4x/blob/develop/es4x/src/main/java/io/reactiverse/es4x/ECMAEngine.java

Bootstrap a graaljs ecma2020 js engine to execute the code.

So, after covering mostly all the runtime code, applications will just be running vert.x APIs. These APIs are production ready, and I can also say that the code above is too.

While there are many modules in this repo, a closer look tells that most of the code here is "helper" code used during development, not production. For example:

To conclude, I'm quite confident that this code is production ready. The reason there isn't a 1.0.0 release yet is because there are still a couple of rough edges that need to be addressed:

So, these changes should not affect already written application as they are as you can see, related to the "helper" development time code, not the runtime.

Gondolav commented 3 years ago

@pmlopes thank you for the thorough answer, very helpful! I'll certainly consider it for my next microservice, as I really enjoy Vert.x and using it with TypeScript could really be a gamechanger. For more practical questions, I should use Gitter right? Thanks again!

pmlopes commented 3 years ago

Yes, either gitter or the vert.x specific discord server