#obel #obel-engine #graphics

no-std obel_platform

Platform agnostic support

5 releases

new 0.0.6 Jan 30, 2025
0.0.5 Jan 27, 2025
0.0.2 Jan 27, 2025
0.0.1 Jan 26, 2025
0.0.0 Jan 26, 2025

#204 in Game dev

Download history 274/week @ 2025-01-22

274 downloads per month
Used in 5 crates (3 directly)

MIT/Apache

85KB
1K SLoC

Obel Platform

License Crates.io Downloads Docs Discord

Overview

obel_platform is a specialized crate designed to enhance cross-platform development
for Obel game engine projects. While Rust's standard library provides excellent multi-platform support,
this crate offers optimized alternatives specifically tailored for game development and embedded systems.

Key benefits:

  • Platform-optimized alternatives to standard library components
  • First-class support for no_std environments
  • Seamless integration with Bevy ecosystem

Installation

Add the crate to your project using cargo:

cargo add obel_platform

Usage

Simply import from obel_platform instead of std for supported items. Refer to the documentation for available items and their benefits.

Features

Standard Library Support (std) [default]

  • Enables standard library integration
  • Provides optimized alternatives where beneficial
  • Incompatible with no_std targets

Allocation Support (alloc) [default]

  • Enables alloc crate functionality
  • Automatically enabled with std feature
  • Compatible with most no_std targets

Portable Atomics (portable-atomic)

  • Uses portable-atomic for atomic operations
  • Essential for platforms with limited atomic operation support
  • Provides consistent atomic behavior across platforms

Critical Section Support (critical-section)

  • Implements synchronization using critical-section
  • Ideal for platforms with minimal atomic operation support
  • Often used in conjunction with portable-atomic

No-std Configuration

To use on generic(no_std) platforms, disable default features but enable other feature in your Cargo.toml:

obel_platform = { version = "x.y.z", default-features = false, features = ["generic"]  }

Dependencies

~0.2–1.2MB
~19K SLoC