Skip to content

Releases: Programmierpraktikum-MVA/AsyncAPI

Final version

31 Jul 13:28
1ef5339
Compare
Choose a tag to compare
v1.1.1

Doc (#111)

Crustagen v1.1.0 🚀 (16.07.2023)

16 Jul 12:12
d05d047
Compare
Choose a tag to compare

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)

12 Jun 15:53
c8f5aba
Compare
Choose a tag to compare

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)

01 Jun 17:48
16143a0
Compare
Choose a tag to compare

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)

26 May 10:21
52d0d3a
Compare
Choose a tag to compare

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