Rust OpenGL

Open-source Rust projects categorized as OpenGL

Top 23 Rust OpenGL Projects

  • alacritty

    A cross-platform, OpenGL terminal emulator.

    Project mention: Warp? A terminal behind login popup | dev.to | 2023-06-01

    My journey of using terminal emulators began together with my introduction to Linux about 7 years ago. GNOME terminal was my first as it came pre-installed on Ubuntu, my first Linux distribution. Since then, I've had the opportunity to explore and utilize a range of terminal emulators, including Alacritty, Kitty, st, Konsole, xterm, and most recently iTerm2. It's been interesting to experiment with these different emulators, each offering its unique features (or similar however with each with personal touch), user interfaces, and performance benchmarks. Just the other day, a new terminal emulator caught my attention: Warp Terminal. My curiosity won, and Warp was downloaded, this short blog are my thoughts about Warp terminal. At the moment there is only support for macOS, however linux and windows builds are on the way.

  • wgpu

    Safe and portable GPU abstraction in Rust, implementing WebGPU API.

    Project mention: Wgpu Questions: Vertex Buffers | /r/rust | 2023-06-05

    (Unfortunately, wgpu is not optimally parallelized yet under the hood - see this issue - but it hopefully will be in the future.)

  • SonarQube

    Static code analysis for 29 languages.. Your projects are multi-language. So is SonarQube analysis. Find Bugs, Vulnerabilities, Security Hotspots, and Code Smells so you can release quality code every time. Get started analyzing your projects today for free.

  • Azul

    Desktop GUI Framework

    Project mention: Servo, the parallel browser engine written in Rust | news.ycombinator.com | 2023-05-27

    I'd been wanting to see this, preferably with JS being optional, and just allowing direct DOM access.

    I initially thought this was what Azul was, but it's only just using Servo's WebRender compositor, and rolls its own CSS parser, DOM, and layout engine, so it doesn't benefit from most of the work done on Servo, and supports less CSS features.

    https://github.com/fschutt/azul

  • gfx

    [maintenance mode] A low-overhead Vulkan-like GPU API for Rust.

    Project mention: How to learn writing a Wayland compositor? | /r/rust | 2023-03-25

    Understand Wayland concepts: Familiarize yourself with the basic concepts and principles of Wayland. This will help you gain a solid understanding of how the system works. You can refer to the official Wayland documentation (https://wayland.freedesktop.org/docs/html/) and the Wayland book (https://wayland-book.com/). Learn Rust: If you're not already proficient in Rust, take some time to learn the language. The Rust Book (https://doc.rust-lang.org/book/) is a great place to start. Study existing Wayland compositors: Since you mentioned Anvil and smallvil, you can study their source code to gain insights into how they're designed and implemented. Try to understand the structure and how different components interact with each other. Dive into Smithay: Smithay (https://github.com/Smithay/smithay) is a Rust library for building Wayland compositors. Familiarize yourself with the library and its components. You can start by studying the provided examples and reading the API documentation. Learn graphics programming: Since you're interested in graphics effects, you'll need to learn about graphics programming concepts, such as shaders, framebuffers, and texturing. Vulkan (https://www.vulkan.org/) is a popular graphics API that you can use with Rust. Check out the following resources to learn more about Vulkan and graphics programming in Rust: Vulkan Tutorial (https://vulkan-tutorial.com/) gfx-rs (https://github.com/gfx-rs/gfx), a Rust graphics library Vulkano (https://github.com/vulkano-rs/vulkano), a safe, pure-Rust wrapper around the Vulkan API Start small: Break down the compositor project into smaller, manageable tasks. Begin by implementing basic functionality, like setting up a window and drawing simple shapes. Gradually add more features, such as input handling and window management. Ask for help: Join the Wayland and Rust communities to ask questions and seek advice. You can find them on forums, mailing lists, and chat platforms like Discord or IRC. The Wayland mailing list (https://lists.freedesktop.org/mailman/listinfo/wayland-devel) and the Rust programming subreddit (https://www.reddit.com/r/rust/) are good places to start. Iterate and experiment: As you progress, keep experimenting with different graphics effects and shaders. Try to implement the features you're interested in, such as blur, window previews, and window switching.

  • glium

    Safe OpenGL wrapper for the Rust language.

    Project mention: Cargo build feature issue: Building winit problem, says no features specified | /r/rust | 2023-03-23

    Which is blocked, waiting for glium to update: https://github.com/glium/glium/pull/2036

  • rust-doom

    A Doom Renderer written in Rust.

    Project mention: RustDoom: Doom Renderer Written in Rust | news.ycombinator.com | 2023-04-27
  • glutin

    A low-level library for OpenGL context creation, written in pure Rust.

    Project mention: glutin: A low-level library for OpenGL context creation, written in pure Rust. | /r/planetemacs | 2023-03-28
  • InfluxDB

    Access the most powerful time series database as a service. Ingest, store, & analyze all types of time series data in a fully-managed, purpose-built database. Keep data forever with low-cost storage and superior data compression.

  • zemeroth

    😠⚔️😈 A minimalistic 2D turn-based tactical game in Rust

    Project mention: Decision paralysis: ggez or macroquad | /r/rust_gamedev | 2022-07-09

    i've used both in zemeroth: i migrated it from ggez to macroquad mostly because ggez at that time didn't support android and web targets. but i'd say that the main difference is tech stacks they're using: while ggez extensively reuses the existing rust gamedev ecosystem (winit, wgpu, rodio, etc), mq was written mostly on top of minimalist or its own specialized libraries (see miniquad).

  • rust-skia

    Safe Skia Bindings for Rust

    Project mention: A simple 2d graphic library | /r/rust | 2023-04-16

    Checkout rust-skia.

  • luminance-rs

    Type-safe, type-level and stateless Rust graphics framework

    Project mention: Introducing posh: Type-Safe Graphics Programming in Rust | /r/rust | 2023-06-04

    gives me same vibes as https://github.com/phaazon/luminance-rs

  • glow

    GL on Whatever: a set of bindings to run GL anywhere and avoid target-specific code (by grovesNL)

  • learn-opengl-rs

    Rust port of JoeyDeVries/LearnOpenGL

  • rend3

    Easy to use, customizable, efficient 3D renderer library built on wgpu.

    Project mention: Is bevy the best option for a Rust based game engine (long term)? | /r/rust_gamedev | 2023-05-31

    The big problem I have with bevy here is that they seem to be very much against bevy being reusable across the ecosystem. Every feature has to be bevyfied into an ECS thing. There's no way one can use bevy_input for input handling outside of bevy, or bevy_audio for audio, or bevy_render to get a 3d renderer like https://rend3.rs/. The Rust ecosystem would've been so much better off if bevy wasn't creating a walled garden and draining insane amounts of effort just for itself, but say instead used rend3 for its rendering, so that other efforts in rust gamedev didn't have to reimplement everything from scratch.

  • flux

    An open-source tribute to the macOS Drift screensaver (by sandydoo)

    Project mention: My desktop PC is just collecting dust at this point | /r/macsetups | 2023-06-06

    As replied above, it's just a standard screensaver. Anyhow, someone made a replica website for it: https://flux.sandydoo.me/

  • sulis

    Turn based tactical RPG with several campaigns, written in Rust

  • gltf

    A crate for loading glTF 2.0 (by gltf-rs)

  • Speedy2D

    Rust library for hardware accelerated drawing of 2D shapes, images, and text, with an easy to use API.

    Project mention: Rust library for hardware accelerated drawing of 2D shapes | /r/rustist | 2023-03-23

    Rust library for hardware accelerated drawing of 2D shapes, images, and text, with an easy to use API. https://github.com/QuantumBadger/Speedy2D

  • glrnvim

    glrnvim wraps nvim with your favourite terminal into a standalone, non-fancy but daily-usable neovim GUI.

    Project mention: Planning to create a Neovim JackKnife IDE/tool | /r/neovim | 2023-02-04

    While the neovim license legally allows for commercial use, the question is are you okay with selling other peoples work? not to mention certain plugins and gui's (see https://github.com/beeender/glrnvim/blob/master/LICENSE) require you to disclose the source of whatever project you use them in.

  • bevy_retro

    Plugin pack for making 2D games with Bevy

    Project mention: Many reasons to always read the LICENSE | /r/linuxmasterrace | 2023-04-09

    https://github.com/katharostech/bevy_retrograde/blob/master/LICENSE.md section 6.2

  • spirv_cross

    Safe Rust wrapper around SPIRV-Cross

    Project mention: Request for porters, think about the end user a little more :C | /r/rust | 2022-08-14

    These are included in the extended examples from the repo.

  • sdf-viewer

    A fast and cross-platform Signed Distance Function (SDF) viewer, easily integrated with your SDF library.

    Project mention: SDF Viewer: a fast and cross-platform Signed Distance Function (SDF) viewer, easily integrated with your SDF library | /r/rust | 2022-08-06

    Afterward, this GLSL shader does the actual rendering. This shader is applied to a cuboid mesh that represents the bounding box of the object. The mesh is useful for only raytracing the part of the screen that may reach the object, and for extracting the rays for each pixel from the hit points. The shader simply walks along the ray for each pixel, moving by the amount of distance reported by the SDF on each position. If the surface is reached at some point, the normal is computed and the lighting is applied for the material saved in the closest voxel. To get the distance at a point that does not match the grid, interpolation is applied, leading to round corners if the level of detail is not high enough.

  • rusterizer

    Bare-bones software renderer written in Rust

  • ux-dx

    The core for UX Components and UX Animate

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2023-06-06.

Rust OpenGL related posts

Index

What are some of the best open-source OpenGL projects in Rust? This list will help you:

Project Stars
1 alacritty 46,971
2 wgpu 7,935
3 Azul 5,539
4 gfx 5,271
5 glium 3,206
6 rust-doom 2,232
7 glutin 1,852
8 zemeroth 1,308
9 rust-skia 1,074
10 luminance-rs 1,056
11 glow 871
12 learn-opengl-rs 849
13 rend3 813
14 flux 647
15 sulis 425
16 gltf 420
17 Speedy2D 317
18 glrnvim 271
19 bevy_retro 252
20 spirv_cross 78
21 sdf-viewer 51
22 rusterizer 45
23 ux-dx 13
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com