Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Rust
  3. angolmois-rust

angolmois-rust

Rust

A Rust translation of Angolmois, a minimalistic music video game that plays BMS format files.

GitHubGitHub
103 stars9 forks0 contributors

What is angolmois-rust?

Angolmois Rust Edition is a direct, line-by-line translation of the original Angolmois C code into the Rust programming language. It is a minimalistic rhythm game that plays music and game data using the Be-Music Source (BMS) file format, similar to the classic BM98. The project serves as a practical case study and educational example for porting a moderately-sized, self-contained C application to Rust.

Target Audience

Rust developers and learners interested in studying a real-world example of porting a complete C application (a game) to Rust, and rhythm game enthusiasts or developers looking for a minimalistic, open-source BMS player.

Value Proposition

Developers choose this project primarily as an educational resource—it provides a heavily commented, direct translation of a non-trivial C codebase to Rust, making the porting process and Rust's application development patterns explicit. It also offers a self-contained, minimalistic BMS player implementation with fewer external dependencies than more feature-complete alternatives.

Overview

Angolmois BMS player, Rust edition

Use Cases

Best For

  • Studying how to port a moderately-sized C application (like a game) to Rust while maintaining original structure.
  • Learning Rust application development patterns through a heavily commented, real-world codebase.
  • Building or modifying a minimalistic, open-source rhythm game that uses the BMS file format.
  • Understanding the library support and challenges involved in writing a self-contained graphical application in Rust.
  • Comparing a direct C-to-Rust translation with a more refactored fork (like Sonorous) for educational purposes.
  • Developing a lightweight BMS player for environments where a full-featured game engine is unnecessary.

Not Ideal For

  • Developers seeking a modular, refactored codebase for easy feature addition or customization
  • Teams requiring stable, production-ready software with long-term Rust version support
  • Projects needing the latest Angolmois features or bug fixes from version 2.0 alpha 3
  • Users wanting a full-featured rhythm game with advanced graphics, sound options, or plugin systems

Pros & Cons

Pros

Educational Codebase

Extensively commented to illustrate C-to-Rust translation patterns, making it a practical case study for learning application porting in Rust.

Minimalistic Gameplay

Provides a focused BMS rhythm game experience with streamlined mechanics, reducing complexity and external dependencies.

Self-Contained Design

Bundles most functionality into a single file, inherited from the original C code, which simplifies deployment and minimizes library reliance.

Cons

Unstable Toolchain Dependence

Requires Rust nightly builds and Cargo, as noted in the FAQ, making setup complex and unsuitable for stable production environments.

Legacy Code Structure

The single-file, direct translation from C hinders maintainability and refactoring, lacking modern Rust idioms or modular architecture.

Outdated Version Base

Based on Angolmois 2.0.0 alpha 2, missing updates from alpha 3 and blocked by immature SDL 2.0 bindings, limiting feature parity and bug fixes.

Frequently Asked Questions

Quick Stats

Stars103
Forks9
Contributors0
Open Issues2
Last commit6 years ago
CreatedSince 2013

Tags

#sdl#audio-visual#music-game#c-to-rust#rhythm-game#open-source-game#rust#game-engine

Built With

C
Cargo
S
SDL
R
Rust

Included in

Rust56.6k
Auto-fetched 1 day ago

Related Projects

ArnisArnis

Generate any location from the real world in Minecraft with a high level of detail.

Stars15,903
Forks1,313
Last commit1 day ago
cityboundcitybound

A work-in-progress, open-source, multi-player city simulation game.

Stars8,117
Forks356
Last commit3 years ago
LudusaviLudusavi

Backup tool for PC game saves

Stars5,634
Forks114
Last commit1 month ago
rust-doomrust-doom

A Doom Renderer written in Rust.

Stars2,407
Forks104
Last commit2 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub