utoipa
spec
utoipa | spec | |
---|---|---|
15 | 42 | |
1,847 | 3,868 | |
- | 1.7% | |
8.1 | 7.9 | |
9 days ago | 4 days ago | |
Rust | JavaScript | |
Apache License 2.0 | Apache License 2.0 |
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.
utoipa
-
What's everyone working on this week (23/2023)?
In case you didn't know https://github.com/juhaku/utoipa is really nice to generate openapi spec and have a swagger!
-
OpenAPI v4 Proposal
play-swagger [2] for scala + play. They generate a significant portion of your spec for you, then a client can be generated from the spec.
[1] https://github.com/juhaku/utoipa
[2] https://github.com/iheartradio/play-swagger
-
REST API in RUST with ntex
utoipa
-
Announcing utoipa 3.0.0, one year anniversary release - Compile time OpenAPI library for Rust
Latest release notes: https://github.com/juhaku/utoipa/releases/tag/utoipa-3.0.0
- New Tokio blog post: Announcing axum 0.6.0
-
Using Rust at a Startup: A Cautionary Tale
I've written a few backend APIs with rust and I have to disagree. Not only have the frameworks managed to get the ergonomics similar to your popular GC lang[0][1], the natural lack of shared mutable state of HTTP handlers means you very rarely have to encounter lifetimes and a lot of the language's advanced features. What's more, now when I go back to work with other languages, I can't help but notice the significant number of unit tests I'd not have had to write in Rust. It doesn't have a Rails and Django but it's an easy pick over anything at the language level.
A note on performance, Rust's the only langauge where I haven't had the need to update my unit test harnesses to `TRUNCATE` data base data instead of creating a separate db per test on PostgresSQL.
I'll also like to mention the gem that is SQLx[1]. As someone who's never been satisfied with ORMs, type checked SQL queries that auto-populate your custom types is revolutionary. With the error-prone langauge-SQL boundary covered, I was surprised just how good it can get making use of the builtin PostgreSQL features. Almost to the point that amount of effort the community's put to building great tools like Prisma.js and feel like a fool's errand (at least so for PosgreSQL).
[0]: https://github.com/alexpusch/rust-magic-function-params
[1]: https://github.com/juhaku/utoipa
[3]: lib.rs/crates/sqlx
-
Book Review: Zero To Production In Rust
Going to strongly disagree here. This isn't necessary in most cases. You likely do not need to test actix-web. actix-web already has more tests than you can possibly think of for exercising its correctness. So why do you need to black-box test it? Further, if your concern is an API client integrating with the API, use code generation not tests to ensure correctness! Generate your clients from a spec generated from your types! I recommend Swagger/OpenAPI or JSON Schema. Here's a nice library for doing this: https://github.com/juhaku/utoipa
-
Web frameworks with integrated Open API?
utoipa: supports most popular frameworks
-
Announcing utoipa 2.0.0, long awaited release - Compile time OpenAPI + Swagger UI
Something like that is planned in future releases. There is a closed discussion in Github https://github.com/juhaku/utoipa/issues/201 and traits for this already exists but the derive implementaiton is yet to be done.
-
okapi-operation - procedural macro for generating OpenAPI operation definitions
Those tags next function parameters look cool. Do you maybe know a crate Utoipa and could share differences between the two crates for those who want to quickly compare them? I've been using utoipa but also I've been following the discussion on Axum's repo about OpenAPI integration in hope for something more comfortable to write. Taking a quick peek they seem very similar but I'm guessing the approach is slightly different?
spec
-
10 realtime data sources you won't believe are free!
AsyncAPI: Interested in how to define your WebSocket APIs? One of the most advanced realtime specifications is the AsyncAPI specification, which comes with various generators for code and documentation, as well as renderers for the specifications.
- Comunicar microservicios con: ¿Kafka, RabbitMQ u otro? ¿Por qué?
-
FastStream: Python's framework for Efficient Message Queue Handling
Our journey with FastStream started when we needed to integrate our machine learning models into a customer's Apache Kafka environment. To streamline this process, we created FastKafka using AIOKafka, AsyncAPI, and asyncio. It was our first step in making message queue management easier.
-
Introducing FastStream: the easiest way to write microservices for Apache Kafka and RabbitMQ in Python
Automatic Docs: Stay ahead with automatic AsyncAPI documentation
-
FastStream: the easiest way to add Kafka and RabbitMQ support to FastAPI services
FastStream supports in-memory testing, AsyncAPI schema generation and more... If you are interested, please support our project by giving a GH start and joining our discord server.
-
An AsyncAPI Example: Building Your First Event-driven API
However, in order for the system to work effectively, there must be a common understanding between the components regarding events and their data structures. This is where AsyncAPI comes in; it helps define a contract that describes how the components communicate and behave effectively.
-
Is this a viable approach to a chat microservice?
You can also take a look at https://www.asyncapi.com/ (a spec for asynchronous APIs). It's useful for this use case, that is, building a well structured websocket interface with pub/sub.
- OpenAPI v4 Proposal
-
Propan 0.1.2 - new way to interact Kafka from Python
Sure! Next step I am working on AsyncAPI scheme generation by your application code. It's also includes a project generation from scheme, scheme web view (lika the Swagger for OpanAPI), etc. It will a much difficult than just another broker implementation...
-
Make API product lifecycle management easy
Onboarding - Enable developers to quickly learn how to consume the exposed APIs. For example, offer OpenAPI or AsyncAPI documentation and provide a portal and sandbox.
What are some alternatives?
swagger-ui - Swagger UI is a collection of HTML, JavaScript, and CSS assets that dynamically generate beautiful documentation from a Swagger-compliant API.
springdoc-openapi - Library for OpenAPI 3 with spring-boot
swagger-core - Examples and server integrations for generating the Swagger API Specification, which enables easy access to your REST API
WatermelonDB - 🍉 Reactive & asynchronous database for powerful React and React Native apps ⚡️
axum - Ergonomic and modular web framework built with Tokio, Tower, and Hyper
asyncapi-react - React component for rendering documentation from your specification in real-time in the browser. It also provides a WebComponent and bundle for Angular and Vue
socketioxide - A socket.io server implementation in Rust that integrates with the Tower ecosystem and the Tokio stack.
mqtt-venstar-bridge - Simple MQTT bridge to the venstar HTTP API
oaph - Helps to subtituate query params and schema definitions to openapi3/asyncapi yaml.
eventbridge-atlas - Open-source tool to document, discover, and share your Amazon EventBridge schemas.
oatx - Generator-less JSONSchema types straight from OpenAPI spec
Flask-SocketIO - Socket.IO integration for Flask applications.