#obel #obel-engine #graphics

no-std obel_platform

Platform agnostic support

8 releases

new 0.0.9 Feb 1, 2025
0.0.8 Feb 1, 2025
0.0.6 Jan 30, 2025

#253 in Game dev

Download history 363/week @ 2025-01-25

363 downloads per month
Used in 7 crates (5 directly)

MIT/Apache

85KB
1K SLoC

Obel Platform

license crates.io downloads docs.rs discord.online

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