Become a sponsor to John Nunley
Hello!
I’ve been passionate about open source for a while now. For the past year or so, I’ve been working with Rust, mostly in libraries in the GUI and async space.
Originally I created bread-graphics
, an organization dedicated to low-level implementations of graphics primitives. This includes breadx
, a pure-Rust implementation of the X Window System Protocol, among several extensions and crates for breadx
.
This work also crossed over with another Rust X11 implementation, x11rb
. The end result was the creation of a shared X11 protocol crate, x11rb-protocol
, in order to reduce the number of separate protocol implementations in the ecosystem by 1.
Since then, I have also maintained smol
, a small, fast and compartmentalized async runtime. Notable changes and features include:
- Reimplementing the windows backend in Rust
- Add metadata and panic propagation to tasks
- Added
Timer::never
- Adding an async
OnceCell
type - Reimplement events with a more efficient,
no_std
compatible strategy - Much more!
I’ve also contributed to the Rust GUI ecosystem as well. My most frequent contributions are as the Windows and X11 backend maintainers for the softbuffer
crate, which is used as a general software renderer. However, I’ve also made several other contributions to winit
, glutin
, raw-window-handle
and other GUI crates. Eventually, I’d like to create my own GUI framework with an emphasis on async
.
This is an experiment is a possible sustainable model for continued open source development. Through GitHub sponsors, you can provide support. In exchange, I will be able to dedicate more of my time to open source development, and you will gain access to the Patron License for some of my packages.
2 sponsors have funded notgull’s work.
Featured work
-
notgull/piet-hardware
An implementation of the Piet render context using the GPU.
Rust 35 -
bread-graphics/breadx
An implementation of the X Window System Protocol in Rust
Rust 235 -
smol-rs/smol
A small and fast async runtime for Rust
Rust 3,800 -
notgull/async-dns
Asynchronous DNS lookups
Rust 61 -
notgull/async-winit
Use winit like the async runtime you've always wanted
Rust 48 -
rust-windowing/softbuffer
Easily write an image to a window
Rust 347