openapi-code-generator VS poem

Compare openapi-code-generator vs poem and see what are their differences.

openapi-code-generator

A code generation tool for openapi 3 / 3.1 specifications written in typescript, primarily aimed at generating typescript clients and server stubs. Other target languages may be added in future. (by mnahkies)

poem

A full-featured and easy-to-use web framework with the Rust programming language. (by poem-web)
SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.
surveyjs.io
featured
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
openapi-code-generator poem
5 30
13 3,248
- 0.9%
8.8 8.8
9 days ago 14 days ago
TypeScript Rust
MIT License Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

openapi-code-generator

Posts with mentions or reviews of openapi-code-generator. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-29.
  • TypeSpec: A New Language for API-Centric Development
    11 projects | news.ycombinator.com | 29 Apr 2024
    Whilst it's not as expressive/flexible as typespec, and in my experience it's not always well supported by tooling, you can do $ref's across files in openapi specifications.

    Eg: https://github.com/mnahkies/openapi-code-generator/blob/main...

  • Show HN: Pre-alpha tool for analyzing spdx SBOMs generated by GitHub
    3 projects | news.ycombinator.com | 21 Apr 2024
    I've become interested in SBOM recently, and found there were great tools like https://dependencytrack.org/ for CycloneDX SBOMs, but all I have is SPDX SBOMs generated by GitHub.

    I decided to have a go at writing my own dependency track esque tool aiming to integrate with the APIs GitHub provides.

    It's pretty limited in functionality so far, but can give a high level summary of the types of licenses your repository dependencies use, and let you drill down into potentially problematic ones.

    Written in NextJS + mui + sqlite, and using another project of mine to generate most of the API boilerplate/glue (https://github.com/mnahkies/openapi-code-generator)

  • Show HN: Konfig – SDKs for APIs to write and maintain less API integration
    2 projects | news.ycombinator.com | 3 Apr 2024
    Congratulations on launching, you have some interesting ideas in there.

    Using a LLM to generate missing operation ids isn't something I've tried, instead I simply combine http method plus path segments which at least guarantees uniqueness [1]. I do a similar thing for extracting and naming inline schemas based on the operation and media types [2].

    How do you prevent naming collisions? And do you find the resulting names to be significantly better than a deterministic approached like I described?

    I'll definitely checkout the curated specifications - always useful to get more high quality (and hopefully varied) specifications to test my code generator with, and the lint rules is a great idea - I've had to explain what patterns lend themselves well to code generation many times.

    I'm on mobile so may have missed it, but looking at one of your typescript examples I couldn't see any runtime response body validation, is this something you're thinking about?

    - [1] https://github.com/mnahkies/openapi-code-generator/blob/main...

  • Write OpenAPI with TypeSpec
    7 projects | news.ycombinator.com | 27 Mar 2024
    Yeah I'm also on the schema first side of the debate.

    I think for me it comes down to a few key points:

    - APIs are forever, the choice of language/framework is an implementation detail

    - Constraining yourself to what can be represented in the specification is better than generating a specification from implementation that may not be capable of expressing the full details

    - When working with diverse languages it provides a common ground/language for discussing API changes. Eg: if you have java backend, kotlin android, swift iOS, react/whatever web you can bring everyone together with the spec

    - Subjective, but a good spec will include a bunch of documentation and examples that tend to create a lot of noise in the code. I personally prefer to keep this in the spec and the implementation smaller

    I think the main counterpoint to this is that you can generate the spec and then take that and change your mind if you later change language/framework etc - it's not a one-way door.

    My biggest bug bear is that regardless of spec first or implementation first, you should have something you write once and generate the rest of the glue from (eg: docs, client sdks). Writing each piece manually/independently always leads to drift and bugs.

    (I'm working on my own little openapi -> typescript code generator over here https://github.com/mnahkies/openapi-code-generator - eventually plan to support more than typescript, and adding typespec support is something I'm currently considering)

poem

Posts with mentions or reviews of poem. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-03-27.
  • Write OpenAPI with TypeSpec
    7 projects | news.ycombinator.com | 27 Mar 2024
    TypeSpec is great, but if you're working with Rust and you're about to write a new project that will require an OpenApi spec sooner or later, I'd like to recommend a web framework that has spec generation baked in:

    https://github.com/poem-web/poem (see poem_openapi)

    All you need to do is derive a trait on your response structs and in return you get an almost perfectly generated spec. Unions, objects, enums are first class citizens.

    Also, if you're from coming from PHP, the controllers feel very much like symfony controllers.

    P.s. Please do recommend an ORM that would feel closer to doctrine. I miss doctrine.

  • What is the best API generator for Axum?
    2 projects | /r/rust | 9 Apr 2023
    I've used FastAPI/Pydantic before as well and it was a very good experience. It has been a while since I used them though, so I forget exactly how they compare, but I do recall it wrote most of the OpenAPI spec. for you. I will also agree when I saw utoipa and aide they seemed to require more boilerplate even though I have not done an actual comparison. Poem, on the other hand, seems very neat and clean and doesn't have any duplication that I can see. Here is the [TODO example](https://github.com/poem-web/poem/blob/master/examples/openapi/todos/src/main.rs).
  • Looking for a Rust API with automatic documentation and good validation?
    4 projects | /r/rust | 5 Mar 2023
    The example at https://github.com/poem-web/poem/tree/master/examples/openapi/auth-apikey works without issues for me.
  • What library to use for a Websocket Server?
    1 project | /r/rust | 23 Feb 2023
    'Poem', it turns to nicer to play with for me than 'Axum'. Example of web socket chat https://github.com/poem-web/poem/blob/master/examples/poem/websocket-chat/src/main.rs
  • Rest API framework in rust
    2 projects | /r/rust | 5 Feb 2023
    If you need built-in OpenAPI support, I can recommend Poem.
  • (Recommendation Request) Rust REST API framework; similar to Python's FastAPI(Python)
    3 projects | /r/rust | 21 Jan 2023
    If OpenAPI is important, then you may to consider https://github.com/poem-web/poem instead of axum. It isn't nearly as widely used, but it should still be compatible with everything else.
  • Hey Rustaceans! Got a question? Ask here (3/2023)!
    12 projects | /r/rust | 16 Jan 2023
    Poem: More rigid and less popular and aims to be easier https://github.com/poem-web/poem
  • A taste of pavex, an upcoming Rust web framework
    3 projects | /r/rust | 24 Dec 2022
    Did you check out Poem? It seems promising, with openapi generation built in already.
  • I switch from Golang and want to build a REST API in Rust.
    6 projects | /r/rust | 22 Dec 2022
    https://github.com/poem-web/poem is a pretty nice framework
  • Migrating from warp to axum
    2 projects | /r/rust | 23 Nov 2022
    I recently been working with warp and stumbled upon poem framework (https://github.com/poem-web/poem), any thoughts about that? Considering Axum as well but staying a bit on cautionary side until 0.6 full release.

What are some alternatives?

When comparing openapi-code-generator and poem you can also consider the following projects:

axum - Ergonomic and modular web framework built with Tokio, Tower, and Hyper

Rocket - A web framework for Rust.

jelly-actix-web-starter - A starter template for actix-web projects that feels very Django-esque. Avoid the boring stuff and move faster.

async-graphql - A GraphQL server library implemented in Rust

okapi - OpenAPI (AKA Swagger) document generation for Rust projects

actix-web - Actix Web is a powerful, pragmatic, and extremely fast web framework for Rust.

Warp - Warp is a modern, Rust-based terminal with AI built in so you and your team can build great software, faster.

warp - A super-easy, composable, web server framework for warp speeds.

openapi-generator - OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an OpenAPI Spec (v2, v3)

slack-morphism-rust - A modern async client library for Rust, supports Slack Web / Events API/Socket Mode and Block Kit.

salvo - A powerful web framework built with a simplified design.

examples - Community showcase and examples of Actix ecosystem usage.