httparse
pixels
Our great sponsors
httparse | pixels | |
---|---|---|
5 | 33 | |
527 | 1,669 | |
- | - | |
5.8 | 4.9 | |
22 days ago | 24 days ago | |
Rust | Rust | |
Apache License 2.0 | MIT License |
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.
httparse
-
Unsafe at Any Speed: Tradeoffs and Values in the Rust Ecosystem
Follow up -- the benchmarks on that PR look poor, but the benchmarks don't actually quite measure what they're expected to measure -- they're not black-boxing inputs, so the compiler has an opportunity to constant-fold in some cases.
I raised a PR to fix the benchmarks: https://github.com/seanmonstar/httparse/pull/151
> or even just skipping blank lines, hyper does things its own way.
Ugh. IMO a bit benefit of Rust is that you can’t do wild-west-YOLO buffer twiddling without “unsafe,” so people will write better code.
But it really looks like httparse missed the memo.
https://github.com/seanmonstar/httparse/blob/v1.8.0/src/iter...
iter::Bytes looks like an awkward wrapper around slices with all the safety removed. So you can port nasty C-style code right over.
Seriously, it should not be hard to efficiently strip a prefix off a u8 slice in safe Rust. For example, split_first.
You mean like this one?
https://github.com/seanmonstar/httparse/pull/86/files#diff-4...
- Hey Rustaceans! Got an easy question? Ask here (12/2021)!
pixels
-
A minimal working Rust / SDL2 / WASM browser game
https://github.com/parasyte/pixels
That gives you a simple software framebuffer, and it builds as a native app or for the web.
-
How do rust gui frameworks avoid rerendering?
On a more recent machine, that same (well, more primitive) app with pixels or softbuffer struggled beyond acceptable. But was definitely poorly written.
-
Announcing lavagna v2, a collaborative blackboard made with bevy and WebRTC
I’ve ported the application from being based on pixels crate to the powerful bevy game engine
-
placing pixels
Well, it depends on how you use it; writing to an image buffer isn't much less efficient than writing to any normal buffer (in fact, although displaying your scene to a window efficiently is important, your main bottleneck will be the actual ray tracing loop). You may want to read this article for a practical example of using an ImageBuffer to create and draw a texture with Piston. Other window backends you could use, apart from pixels which was already mentioned in another comment, include minifb and Mini GL, though I haven't personally used them.
-
Considerations for Power Draw with egui
You can use wgpu instead of opengl as in the pixels example: https://github.com/parasyte/pixels/tree/main/examples/minimal-fltk
-
I love rust, I have a pet peeve with the community
The reality is that I have used unsafe that is also unsound out of convenience because fixing it is a papercut too many. And this tends to be common! I know enough to spot unsoundness in other projects (sometimes even early). But not enough to be confident in my own abilities to write sound unsafe code. Why? Because it's really flipping hard, that's why!
-
[WGPU][GLFW][HELP]
Also, if you just want to get-things-done, then https://github.com/parasyte/pixels might be a bit better, to avoid reinventing the wheel.
-
How to prevent performance drops affecting my Game Boy emulator when running on M1/M2 Macs?
However, I recently got a new M2 Macbook Air and started noticing some super weird behavior. While playing Pokemon Silver with an unlocked framerate, I'd notice that the game would slow down to below 60FPS, even on a release build. After printing a little debugging info I found the culprit in the rendering logic which was handled by the MiniFB crate. At first I thought switching to a GPU renderer (such as https://github.com/parasyte/pixels) would help, and it... kinda did?
-
Simple way to draw a pixel at coordinates
pixels uses wgpu and runs fine.
-
Bevy doesn't work with Pixels crate
Unfortunately the pixels crate uses wgpu 0.12 and the latest is wgpu 0.13 which shouldn't have this issue. As /u/lenscas has said you could have forked pixels to update the dependency but you could also set your dependency to use the latest GitHub SHA because an update to use the latest version of wgpu 0.13 has been merged into the repository.
What are some alternatives?
macroquad - Cross-platform game engine in Rust.
bevy - A refreshingly simple data-driven game engine built in Rust
rust-sfml - SFML bindings for Rust
miniquad - Cross platform rendering in Rust
ggez - Rust library to create a Good Game Easily
rust_minifb - Cross platfrom window and framebuffer crate for Rust
bathtub - Application for plating process
arewegameyet - The repository for https://arewegameyet.rs
gping - Ping, but with a graph
advent-of-code-2020 - :christmas_tree: My Advent of Code solutions in Rust. http://adventofcode.com/2020
rfcs - RFCs for changes to Rust
bevy_pixels - Bevy plugin that uses Pixels (a tiny pixel buffer) for rendering