Releases: Programmierpraktikum-MVA/AsyncAPI
Releases · Programmierpraktikum-MVA/AsyncAPI
Final version
Crustagen v1.1.0 🚀 (16.07.2023)
Final release from the SoSe23 Praktikum group!
What's Changed
- Switched roles of publish/subscribe according to openAPI by @andreas-rot in #52
- made rustdoc generation opt-in by @andreas-rot in #56
- Add support for multiple messages/payloads, deserialize with serde, split structs to model.rs by @stano45 in #58
- 📄✨ Added Justfile with 🚀🔥 code generation and 🎉✏️ juicy log messages! by @stano45 in #60
- Add support for all official AsyncAPI schema versions by @stano45 in #59
- cleaned up generator/common.rs by @f-eliks in #64
-
- dependencies are now defined in extra template file by @f-eliks in #63
- pre-commit excludes templates by @f-eliks in #61
- Added support for a stream to Template by @jacobGr-afk in #71
- Refactor schema parser by @doepnern in #65
- Demo 03 07 by @doepnern in #81
- cleaned up generator and added camel_case_to_snake_case by @f-eliks in #82
- Clean up generator by @f-eliks in #84
- 17 make generated struct member names snake case by @aikokal in #77
- Tracing by @stano45 in #87
- Embed dependancies by @f-eliks in #86
- Init tracer using .env by @stano45 in #92
- Update README.md by @stano45 in #93
- Logger for generated microservice, simplify justfile commands by @stano45 in #94
- 53 split handler functions to different files in handler folder by @f-eliks in #89
- changed camel to snake case by @aikokal in #99
- added warp server on tokio task by @jacobGr-afk in #97
- Env changes and bugfixes by @doepnern in #101
- Opa by @f-eliks in #103
- Env changes and bugfixes by @doepnern in #104
- fixed opa by @f-eliks in #106
- Remove default spec path from CLI by @stano45 in #107
- small fixes by @f-eliks in #108
Full Changelog: v1.0.2...v1.1.0
Crustagen v1.0.2 🚀 (12.06.2023)
What's Changed
- Auto-generated documentation (rustdoc) by @doepnern in #40
- Changed parsing to use a simplified operation model so we can access types on each message separately by @doepnern in #44
- Support for array types, format by @stano45 in #41
- Created a basic readme and added license by @stano45 in #45
Full Changelog: v1.0.1...v1.0.2
Crustagen v1.0.1 🚀 (01.06.2023)
What’s changed:
Spec validation
- The input specification now gets validated by the official AsyncAPI JSON schema
- Input specification files that are not following the official specification will be rejected
- Specs with duplicate
operationIds
will also be rejected
Crustagen v1.0.0 🚀 (26.05.2023)
What’s changed:
1. Command line interface (CLI) for the generator:
- The -s argument is a path to the specification file
- The -o argument is the output directory, where the generated project will be initialized
- The -p argument is the project name, this will overwrite the project name from the spec
- Default arguments (and spec) are provided, so that no arguments must be explicitly provided
- The Clap library was utilized for the CLI
2. Parser for the AsyncAPI Specification, in either json or yaml format
- The complete specification is parsed into an internal AsyncAPI struct representation
- All schemas are parsed into a rust struct, along with Serde traits
- Support for nested objects
- Support for references (within the same spec file)
3. Generator for basic Pub/Sub functionality
- main.rs template: A Tokio runtime which listens to NATS pub/sub messages, and executes a handler function, and a simple producer which currently just sends messages on a timer (for testing)
- handler.rs template: async handler functions for each channel, and the parsed message structs (these will be moved to a separate file later)
- A rust project is automatically created with cargo, and needed dependencies will be imported
- The user only needs to execute cargo run in the generated directory