todo-mvp
anyhow
todo-mvp | anyhow | |
---|---|---|
3 | 13 | |
138 | 5,059 | |
- | - | |
0.0 | 8.5 | |
over 1 year ago | 13 days ago | |
CSS | Rust | |
- | 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.
todo-mvp
-
Oops, I Did It Again...I Made A Rust Web API And It Was Not That Difficult
This post is only concerned with Rust and will use assets identical to the last post. Create a folder called templates at the project's top-level, and place this index.html inside. You will also need to create a directory at src/resource and fill it with these files. There is a stylesheet and a handful of SVG files. Your structure should look like this:
-
How does one apply suckless philosophy to web development?
There's a cool project called TODO MVP that showcases the merits of simple, server-side templating for web apps. A nice reminder that not everything needs to be a heavy JavaScript single-page application.
anyhow
-
I love building a startup in Rust. I wouldn't pick it again.
Depending on your use case, thiserror and/or anyhow.
-
Why Rust?
There is ? as well as the anyhow(https://github.com/dtolnay/anyhow) crate that deals with long nested result chains.
- Anyhow/src/ensure.rs: Rust macro with 675 lines
-
Is this a good way of handling errors in Rust?
There are crates out there that help you reduce this boiler plate. thiserror is good for creating custom errors and color-eyre or anyhow are good for dynamic errors.
-
Looking for general advice on toy project
Give anyhow a look.
-
Oops, I Did It Again...I Made A Rust Web API And It Was Not That Difficult
I've brought anyhow::Result into scope, making error handling super easy to use. We don't need to specify all our Error types. It can automatically convert any errors that implement std::error::Error, which should be all of them. If an error propagates all the way up to main(), we'll get all the info it's captured printed to stdout.
-
Idiomatic way to return/break if Err/None
Alternatively, if you've got a lot of error types and you're outside a library (so directly in a binary where you don't plan to reuse code elsewhere) you can use anyhow. This gives you an error type you can basically propagate any other error through. On top of that you can attach context information at every return. It's basically a more complicated Result>.
-
Using workspace for modularization is kind of painful?
One approach is to define a separate error type for each crate and then use anyhow, eyre or Box to wrap the error, whever a function can return errors originating in several different crates.
-
Can we please stop downvoting people who dislike Rust?
Have you tried anyhow and thiserror for making it as simple as .context("Message") or ? to type-convert and propagate errors up the call stack?
What are some alternatives?
tera - A template engine for Rust based on Jinja2/Django
eyre - A trait object based error handling type for easy idiomatic error handling and reporting in Rust applications
select.rs - A Rust library to extract useful data from HTML documents, suitable for web scraping.
color-eyre - Custom hooks for colorful human oriented error reports via panics and the eyre crate
fenix - Rust toolchains and rust-analyzer nightly for Nix [maintainer=@figsoda]
thiserror - derive(Error) for struct and enum error types
lazy-static.rs - A small macro for defining lazy evaluated static variables in Rust.
rust - Rust language bindings for TensorFlow
structopt - Parse command line arguments by defining a struct.
cargo-edit - A utility for managing cargo dependencies from the command line.
hyper - An HTTP library for Rust