73 releases

Uses new Rust 2024

new 0.1.80 Mar 22, 2025
0.1.77 Feb 26, 2025
0.1.66 Dec 31, 2024
0.1.58 Nov 29, 2024
0.1.23 Mar 30, 2024

#415 in Profiling

Download history 542/week @ 2024-11-27 86/week @ 2024-12-04 525/week @ 2024-12-11 127/week @ 2024-12-18 250/week @ 2024-12-25 403/week @ 2025-01-01 27/week @ 2025-01-08 64/week @ 2025-01-15 183/week @ 2025-01-22 135/week @ 2025-01-29 211/week @ 2025-02-05 240/week @ 2025-02-12 290/week @ 2025-02-19 360/week @ 2025-02-26 13/week @ 2025-03-05 127/week @ 2025-03-12

797 downloads per month
Used in 3 crates

Apache-2.0

54KB
1K SLoC

pavex pavex
Re-imagining backend development in Rust

What is Pavex?

Pavex is a new framework to build APIs with Rust.

Pavex aims to have it all: great ergonomics and high performance.
The same productivity boost of Ruby on Rails, Spring or ASP.NET Core.
As fast as a handwritten solution that strips away all abstractions.

Check out Pavex's documentation for a thorough introduction to the framework and its design philosophy.

Project status

Pavex is currently in closed beta—you can sign up here to get early access.

We regularly publish project updates.

Last update: This month in Pavex #10 [April 2024]

Previous updates:

Architectural Overview

If the section above was enough to get you intrigued, you can check out the architectural deep-dive in ARCHITECTURE.md to learn how Pavex works under the hood.

Contributing

Typo in documentation? Open a PR straight-away!
Small bug fix with a regression test? Open a PR straight-away!
Anything beyond 20 lines of code? Open an issue first.

If you are looking to contribute, you can find dedicated instructions in CONTRIBUTING.md.

License

Licensed under the Apache License, Version 2.0. Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be licensed as above, without any additional terms or conditions.


lib.rs:

This crate provides a custom graphical Miette handler for the Pavex project.

The handler is largely based on the miette::handlers::GraphicalHandler, with one key difference: we only report the code snippets from the related errors associated with a report. We have also done other minor tweaks to the graphical layout to better suit our needs.

This allows us to display snippets that come from different source files, a feature that doesn't have first-class support in miette. In other words, you can see this custom handler as a "hack" to avoid having to maintain a full fork of miette.

Dependencies

~7–16MB
~240K SLoC