k8s-openapi VS tsoa

Compare k8s-openapi vs tsoa and see what are their differences.

k8s-openapi

Rust definitions of the resource types in the Kubernetes client API (by Arnavion)

tsoa

Build OpenAPI-compliant REST APIs using TypeScript and Node (by lukeautry)
Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
k8s-openapi tsoa
7 16
360 3,125
- -
8.3 9.1
12 days ago 6 days ago
Rust TypeScript
Apache License 2.0 MIT License
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.

k8s-openapi

Posts with mentions or reviews of k8s-openapi. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-06.
  • WinBtrfs – an open-source btrfs driver for Windows
    7 projects | news.ycombinator.com | 6 Apr 2024
    It's called sans-io in Python land, which is where I heard it first.

    https://sans-io.readthedocs.io/

    I did it for one of my projects back in 2018 https://github.com/Arnavion/k8s-openapi/commit/9a4fbb718b119...

  • The bane of my existence: Supporting both async and sync code in Rust
    4 projects | news.ycombinator.com | 19 Jan 2024
    Another option is to implement your API in a sans-io form. Since k8s-openapi was mentioned (albeit for a different reason), I'll point out that its API gave you a request value that you could send using whatever sync or async HTTP client you want to use. It also gave you a corresponding function to parse the response, that you would call with the response bytes however you got them from your client.

    https://github.com/Arnavion/k8s-openapi/blob/v0.19.0/README....

    (Past tense because I removed all the API features from k8s-openapi after that release, for unrelated reasons.)

  • Welcome to Comprehensive Rust
    10 projects | news.ycombinator.com | 22 Dec 2022
    Macro expansion is slow, but only noticeably in the specific situation of a) third-party proc macros, b) a debug build, and c) a few thousand invocations of said proc macros. This is because debug builds compile proc macros in debug mode too, so while the macro itself compiles quickly (because it's a debug build), it ends up running slowly (because it's a debug build).

    I know this from observing this on a mostly auto-generated crate that had a couple of thousand types with `#[derive(serde::)]` on each. [1]

    This doesn't affect most users, because first-party macros like `#[derive(Debug)]` etc are not slow because they're part of rustc and are thus optimized regardless of the profile, and even with third-party macros it is unlikely that they have thousands of invocations. Even if it is* a problem, users can opt in to compiling just the proc macros in release mode. [2]

    [1]: https://github.com/Arnavion/k8s-openapi/issues/4

    [2]: https://github.com/rust-lang/cargo/issues/5622

  • OpenAPI Generator allows generation of API client libraries from OpenAPI Specs
    11 projects | news.ycombinator.com | 15 Oct 2022
    >OpenAPI Generator allows generation of API client libraries from OpenAPI Specs

    It does, but the generated code can be very shitty for some combinations of spec and output language. I maintain Rust bindings for the Kubernetes API server's API, and I chose to write my own code generator instead. The README at https://github.com/Arnavion/k8s-openapi has more details.

  • Any good toy Rust project for k8s application?
    3 projects | /r/rust | 20 Jan 2022
    k8s_openapi - https://github.com/Arnavion/k8s-openapi
  • Approaches for Chaining Access to Deeply Nested Optional Structs
    1 project | /r/rust | 30 Apr 2021
    For example: I have a routine that checks the value of (from k8s-openapi): Ingress -> IngressStatus -> LoadBalancerStatus -> Vec[0] -> String
  • Writing a Kubernetes CRD Controller in Rust
    5 projects | news.ycombinator.com | 9 Jan 2021
    As the maintainer of the Rust bindings that the library used in the article (kube) is backed by, I can confirm that Kubernetes' openapi spec requires a lot of Kubernetes-specific handling to generate a good client than generic openapi generators do not provide.

    See https://github.com/Arnavion/k8s-openapi/blob/master/README.m... for a full description.

    I also confirm that I keep it up-to-date with Kubernetes releases and have been doing so for the ~3 years that it's been around. Not just the minor ones every few months, but even the point ones; these days the latter usually only involves updating the test cases instead of code changes and they're done within a few hours of the upstream release.

tsoa

Posts with mentions or reviews of tsoa. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-11-22.

What are some alternatives?

When comparing k8s-openapi and tsoa you can also consider the following projects:

kube - Rust Kubernetes client and controller runtime

Nest - A progressive Node.js framework for building efficient, scalable, and enterprise-grade server-side applications with TypeScript/JavaScript 🚀

fusionauth-openapi - FusionAuth OpenAPI client

Express - Fast, unopinionated, minimalist web framework for node.

go - The Go programming language

fastify-openapi-glue - A plugin for the Fastify webserver to autogenerate a Fastify configuration based on a OpenApi(v2/v3) specification.

spectrum - OpenAPI Spec SDK and Converter for OpenAPI 3.0 and 2.0 Specs to Postman 2.0 Collections. Example RingCentral spec included.

Koa - Expressive middleware for node.js using ES2017 async functions

smithy - Smithy is a protocol-agnostic interface definition language and set of tools for generating clients, servers, and documentation for any programming language.

routing-controllers - Create structured, declarative and beautifully organized class-based controllers with heavy decorators usage in Express / Koa using TypeScript and Routing Controllers Framework.

tokio - A runtime for writing reliable asynchronous applications with Rust. Provides I/O, networking, scheduling, timers, ...

Hapi - The Simple, Secure Framework Developers Trust