cacao
warp
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.
cacao
-
So You Want to Ship a Command-Line Tool for macOS
This is really specific, but for this point in the article:
> There’s a long guide on Embedding a Command-Line Tool in a Sandboxed App, so I followed that, and then slowly, painfully, factored Xcode out of it, so that I wouldn’t have to figure out how to get a 10GB Xcode install onto the CI machine (remember, you need to be signed in to an Apple ID to download Xcode, and there’s no way to do it from the command-line).
You could actually solve this with Rust and no Xcode whatsoever. cacao [1] and cargo-bundle [2] will produce an app bundle you could sign/notarize/distribute without needing to ever open Xcode.
[1] https://github.com/ryanmcgrath/cacao
- macOS Apps in Rust
- GitHub - ryanmcgrath/cacao: Rust bindings for AppKit (macOS) and UIKit (iOS/tvOS). Experimental, but working!
-
A new open-sourcing project launches!!! A declarative, compose-based and cross-platform GUI
I've had basic animation support in cacao for about a year now, but I don't think anybody even realizes it.
-
Library Concept for Interoperating with Objective-C - Seeking Feedback
But I will reiterate what I say on many posts like these, which is that it would be even cooler if we could stop having a million projects reinvent this wheel - and I say this as someone who wrote a large Rust library that is backed by ObjC. madsmtm has an ongoing effort to put together a best in class ObjC Rust wrapper, which would be great to see even more support for.
-
What bindings do I need for making a modern Windows 11 GUI?
MacOS; I have to call the AppKit API. I can use a library like this which offers Rust bindings for AppKit - otherwise I can write my own maybe?
-
Can I Use Rust For IOS Development?
Yes, you can: https://github.com/ryanmcgrath/cacao
warp
-
Hyper – A fast and correct HTTP implementation for Rust
I tried warp [0] and I am unimpressed so far. Pretty complex, limited documentation, buggy. The builder paradigm they used feels pretty constrained and, in my opinion, achieve the opposite of the simplicity it is supposed to bring. I was surprised it is so popular.
Maybe I need more time or a favorable comparison to another framework to appreciate it.
[0] https://github.com/seanmonstar/warp
-
How in hell can Warp be considered "super easy"?
Have you gone through the (examples)[https://github.com/seanmonstar/warp/blob/master/examples/]? There's actually a lot of explicit instructions here on how to use Warp, and all of them are very straightforward to read (e.g., (this example with route parameters and a POST'ed body)[https://github.com/seanmonstar/warp/blob/master/examples/body.rs])
-
Custom Warp error messages
There are numerous guides how to do custom error messages using the routes .recover() method (including the official one ), but it seems quite inflexible since I can't (seem to?) pass the actual error messages back to user.
-
Rendering a Rust project's file dependency tree in the terminal
$ brew install gabotechs/taps/dep-tree $ git clone https://github.com/seanmonstar/warp $ dep-tree render warp/src/lib.rs lib.rs◁─────────────┬────────────────────────────────┬──────┬┐ │ │ │ ││ ├▷filter/and.rs◁────────────────────────────┐ │ ││ ├▷│filter/map_err.rs◁───────────────────────┤ │ ││ ├▷││filter/or.rs◁───────────────────────────┤ │ ││ ├▷│││filters/mod.rs◁─────────────┬──────┬───────────────────┼┤ ├▷││││test.rs───────┘ │ │ │ │ ││ │ │││││ │ │ │ │ ││ │ │││├│▷filters/addr.rs │ │ │ │ ││ │ │││├│▷│filters/any.rs │ │ │ │ ││ │ │││├│▷││filters/body.rs │ │ │ │ ││ │ │││├│▷│││filters/compression.rs│ │ │ │ ││ │ │││├│▷││││filters/cookie.rs────┘ │ │ │ ││ │ │││├│▷│││││filters/cors.rs │ │ │ ││ │ │││├│▷││││││filters/ext.rs │ │ │ ││ │ │││├│▷│││││││filters/fs.rs │ │ │ ││ │ │││├│▷││││││││filters/header.rs │ │ │ ││ │ │││├│▷│││││││││filters/host.rs │ │ │ ││ │ │││├│▷││││││││││filters/log.rs │ │ │ ││ │ │││├│▷│││││││││││filters/method.rs │ │ │ ││ │ │││├│▷││││││││││││filters/multipart.rs│ │ │ ││ │ │││├│▷│││││││││││││filters/path.rs────┤ │ │ ││ │ │││├│▷││││││││││││││filters/query.rs │ │ │ ││ │ │││├│▷│││││││││││││││filters/reply.rs │ │ │ ││ │ │││├│▷││││││││││││││││filters/sse.rs──┘ │ │ ││ │ │││├│▷│││││││││││││││││filters/trace.rs │ │ ││ │ │││││ ││││││││││││││││││ │ │ ││ ├─────────────────────────▷filter/boxed.rs◁─┤ │ ││ ├─────────────────────────▷│filter/map.rs◁──┤ │ ││ ├─────────────────────────▷││filter/wrap.rs◁┼───────────────┼─┐ │ │││││ ││││││││││││││││││ │││ │ │ │││ ├─────────────────────────────▷filter/mod.rs◁──────┬┬┼───────┤│ │ │││││ ││││││││││││││││ ││ │ │││ │││ │ │││││ ││││││││││││││││ ││ ├▷filter/and_then.rs┤││ │││ │ │││││ ││││││││││││││││ ││ ├▷│filter/or_else.rs┘││ │││ │ │││││ ││││││││││││││││ ││ ├▷││filter/recover.rs┘│ │││ ├───────────────────────────────▷│││filter/service.rs◁──────┼─┤ │ │││││ ││││││││││││││││ ││ ├▷││││filter/then.rs──┤ │││ │ │││││ ││││││││││││││││ ││ ├▷│││││filter/unify.rs┘ │││ │ │││││ ││││││││││││││││ ││ ├▷││││││filter/untuple_one.rs┤││ │ │││││ ││││││││││││││││ ││ │ │││││││ │││ ├───────────────────────────────────────▷reply.rs◁───┬──────────┐ ├───────────────────────────────────────▷│route.rs───│──────┤││ │ │ │││││ ││││││││││││││││ ││ │ │││││││ │ │ │││ │ ├──────────────────────────────────────────▷server.rs◁────────┤ │ │ │││││ ││││││││││││││││ ││ │ │││││││ │ │ │ │││ │ ├────────────────────────────────────────────▷tls.rs─┴──────┘││ │ │ │││││ ││││││││││││││││ ││ │ │││││││ │ │ │ ││ │ ├──────────────────────────────────────────────▷filters/ws.rs◁│ │ ├──────────────────────────────────────────────▷│transport.rs││ │ │ │││ │ ││││││││││││││││ ││ │ │││││││ │ │ │ │ ││ │ ├─────────────────────────────────────────────────▷generic.rs││ │ ├─────────────────────────────────────────────────▷reject.rs─┴┘ │ │ │ │ │ │ ├───────────────────────────────────────────────────▷error.rs │ └───────────────────────────────────────────────────▷redirect.rs┘
-
Is there a more practical way to let warp respond to incoming requests?
What I see on the examples for the warp crate is that the examples do this:
-
I turned The Rust Book into a crate
You might want to consider using Alacritty instead of Warp. Warp is VC-funded, macOS only, closed source, and it phones home. They also kinda stole the name of a web framework.
-
I made rust-webapp-template
warp server,
-
Help with warp routes
Hello, I'd need some help with warp routes since I'm not familiar with the framework. If somebody knows how to do this I'd appreciate very much.
-
Any Rust based forum software?
If one were to undertake a project of developing something like this, which is the best web framework for it. I did some cursory research and discovered these back-end frameworks - actix, axum, poem, salvo, warp, gotham and rocket.
-
shuttle v0.7.1 has been released (improved isolation, new supported frameworks, QOL improvements)
We've added support for the warp, salvo & thruster frameworks
What are some alternatives?
evdi - Extensible Virtual Display Interface
axum - Ergonomic and modular web framework built with Tokio, Tower, and Hyper
Warp - Warp is a modern, Rust-based terminal with AI built in so you and your team can build great software, faster.
actix-web - Actix Web is a powerful, pragmatic, and extremely fast web framework for Rust.
fruity - Rusty bindings for Apple libraries
Rocket - A web framework for Rust.
prost - PROST! a Protocol Buffers implementation for the Rust Language
hyper - An HTTP library for Rust
MoltenVK - MoltenVK is a Vulkan Portability implementation. It layers a subset of the high-performance, industry-standard Vulkan graphics and compute API over Apple's Metal graphics framework, enabling Vulkan applications to run on macOS, iOS and tvOS.
hyperterm - A terminal built on web technologies
cowbump - Image viewer with tag based filtering
kitty - Cross-platform, fast, feature-rich, GPU based terminal