Open
Description
This is where I'm going to start tracking features for 5.0, the next major version of cppgraphqlgen
. This will be a breaking change for existing consumers, so it's an opportunity to cleanup deprecated methods and simplify some of the APIs. I'm also going to adopt a few more C++20 and C++23 features if they are well enough supported on Windows, Linux, and macOS now.
This is using #172, the tracking issue for cppgraphqlgen
4.0, as a template and starting point.
- Stand up a branch for 5.0 and start making PRs against that: https://github.com/microsoft/cppgraphqlgen/tree/next.
- C++20: Modules.
- C++20: Ranges: Should modernize a lot of begin/end iterator usage.
- C++20:
std::fmt
instead ofstd::ostringstream
. - C++20: Co-routines/Awaitable interoperability: See Any real-world examples where the coroutine backing can be applied? #271, this may require a breaking change to the
cppgraphqlgen
Awaitable
types. - Sharing input/scalar/enum types between
clientgen
andschemagen
: See Cannot use multiple client object in single compilation unit. #264 for more discussion. - Build some alternate implementations of
JSONResponse.*
with other JSON libraries besidesRapidJSON
. - Experiment with resolver visitor pattern instead of always going through
service::ResolverResult
. #320 - Generate separate headers/modules for enums and input types and include that in
...Schema.h
instead of inline declarations. #321 - Add support for schema stitching. #323
- Update docs for v5.0 in next branch #330
I'll update this list as new features crop up and as I/we make progress on it. If there's something you'd like to see that I haven't included already, feel free to comment on this issue.