The Codegen Project
The Idea ๐กโ
Apollo GraphQL code generator has always been a pleasure to use, but when it comes to standards such as OpenAPI and AsyncAPI, the same level of code generator or simplicity during the implemenation phase is non-existing.
That is what this project wants to bring;
- โ๏ธ Support multiple protocols (not just HTTP)
- ๐ Support multiple input standards (not just focused on a specific such as AsyncAPI and OpenAPI)
- ๐ง Integrate into any project (regardless of language)
A bit ambitious perhaps... So how?
Howโโ
We want to achieve it through three main parts, open source
, extensive testing
, and sustainability
.
๐ Open sourceโ
Build on and for open source. Use it however you like in your projects enterprise or not, build your software with ease and peace in mind with Apache License 2.0
. It is built for multiple use-cases, as we all know, there will always be another standard. So high likelyhood that we already support what you are switching to.
๐ Testing makes the dream workโ
The worst part about any code generator is if the generated code is either syntantically unusable or sematically incorrect. Thats why all generators are run through a set of tests, blackbox
, runtime
and regular
unit testing.
blackbox
lets shoot into the dark and see if anything turns up red. We test a combination of inputs and generator configurations together to see if anything gets generated that are syntatically incorrect.runtime
we build some actual software in their native language and ensure they work as we expect. I.e. we write test and generated code in their actual language ensuring what is generated are sematically correct.regular
unit testing ensures we can shoot at all. Ensuring you dont encounter errors when running the generator and library.
๐ Long term sustainabilityโ
Relying only on peoples spare time is not a very good long term strategy. We want to ensure the longevity of the project and ensure that those who contribute most also can get paid by it, or even employed to work on open source.
More on that later ;)
Where we are ๐ โ
Right this second, we are laying the foundation for the project, but it's already usable. Take it for a spin!
If you want to take a look at current project planning, take a look at the Milestones for a better overview of whats now and next.