Skip to main content

The Codegen Project

ยท 3 min read
Jonas Lagoni
The Codegen Project creator
Andreas Lagoni
The Codegen Project creator

The Codegen Project banner

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;

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.