pixels
A tiny hardware-accelerated pixel frame buffer. 🦀 (by parasyte)
rust_minifb
Cross platfrom window and framebuffer crate for Rust (by emoon)
Our great sponsors
pixels | rust_minifb | |
---|---|---|
33 | 8 | |
1,677 | 943 | |
- | - | |
4.9 | 6.5 | |
about 2 months ago | 8 days ago | |
Rust | Rust | |
MIT License | MIT License |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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.
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.
pixels
Posts with mentions or reviews of pixels.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2024-01-15.
-
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
-
Is Macroquad suitable for making games like Wolfenstein RPG?
It might be possible but with a raycaster you probably want to be able to easily set all pixels and create your own small engine. Something like the pixels crate should fit your purpose: https://github.com/parasyte/pixels
-
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.
rust_minifb
Posts with mentions or reviews of rust_minifb.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-05-15.
-
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.
-
[Media] Tupper's self-referential formula plotting itself on a framebuffer and more with Rust!
After watching the Numberphile video on this formula, I decided to implement it in Rust for fun. It uses minifb for the window creation + framebuffer.
-
Emulating the Sega Genesis - Part II
Before I could implement the display output, I needed something to draw the images onto. There are quite a few Rust crates available to create a GUI window and update it with 2D graphics. Most of these are of course intended for making games, and also include ways of getting key presses as input, which I'll also need. I looked at Piston, which I've used before on other projects, Macroquad, which also supports web assembly as well as desktop targets, Pixels, which is intended specifically for 2D games, and Minifb, which is also specifically for 2D applications, but is much simpler. I also tried out libretro, which is specifically made for video game emulation, but I found it much more restrictive than the others because of it's narrow focus.
-
Hey Rustaceans! Got an easy question? Ask here (40/2021)!
There's several different approaches you could take, but I'd probably suggest macroquad as the easiest. I've also used minifb for windowing + a drawing library like raqote or tiny-skia.
-
Hello, I want to learn how to make emulators. Where to start and for what architecture to write the first project?
I don't know much about Rust, but I used the C version this library, and I think this is as simple as it gets: Rust MiniFB. Hope this helps
-
inku 0.1.0 – An RGB color backed by a `u32` for simple color manipulation
A very simple color manipulation library backed by a u32. My use-case was for use with minifb which uses a u32 frame buffer. Feedback appreciated.
-
Minimal graphics crate for Rust
If all you need is a pixel/frame buffer I'd suggest either pixels-rs or minifb.
-
Yet another NES emulator in Rust - feedback welcome
In my experience, it really makes no difference what rendering backend you use for something as simple as a NES emulator. The 'pixel_renderer' that i wrote basically does the simplest possible thing i could think of - it takes a pixel buffer in cpu memory, copies it over to the gpu, turns it into a texture and stretches it to cover the entire screen. There seem to be many crates out there that do just this - my choice to roll my own was really one out of curiosity and completionism more than anything.
What are some alternatives?
When comparing pixels and rust_minifb you can also consider the following projects:
macroquad - Cross-platform game engine in Rust.
deku - Declarative binary reading and writing: bit-level, symmetric, serialization/deserialization
bevy - A refreshingly simple data-driven game engine built in Rust
rust-sfml - SFML bindings for Rust
simd-json - Rust port of simdjson
miniquad - Cross platform rendering in Rust
v4l2loopback - v4l2-loopback device
ggez - Rust library to create a Good Game Easily
ili9341-rs - A WIP, no_std, generic driver for the ILI9341 (and ILI9340C) TFT LCD display
bathtub - Application for plating process