• Stars
    star
    271
  • Rank 151,717 (Top 3 %)
  • Language
    Rust
  • License
    Apache License 2.0
  • Created over 5 years ago
  • Updated 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

OpenXR bindings for Rust

OpenXRS

Documentation Crates.io License: MIT License: Apache 2.0

Rust bindings for the OpenXR virtual/augmented reality runtime API. Refer to the specification for detailed documentation on individual API calls.

openxr

The high-level bindings provide abstractions focusing on ergonomics and safety. Escape hatches to the raw API are exposed to support unforeseen requirements, and patterns that cannot be efficiently exposed in safe terms are preserved as unsafe.

The crate exposes a number of cargo features:

  • static builds in the Khronos OpenXR loader, which can then be accessed with Entry::linked(). This is the easiest way to get going, provided your environment has a working C++ compiler and CMake installation.
  • loaded allows access to a manually identified OpenXR implementation at run time. This allows for cases where a built-in Khronos loader, normally responsible for that task, cannot be used.
  • linked attempts to link to an OpenXR loader in the build environment. This is appropriate for target environments like desktop Linux which guarantee the presence of an OpenXR implementation or loader at a specific location, making a built-in loader redundant.
  • mint exposes From impls for converting to and from mint types where appropriate.

See openxr/examples/vulkan.rs for an example high-performance Vulkan rendering workflow.

openxr-sys

The low-level bindings provide faithful unsafe access to the raw API, with ergonomics and type safety improved as much as feasible compared to a bindgen-style binding without reducing expressiveness. For example, symbols are named according to Rust conventions, enums and bitmasks are strongly typed, and many types have helpful Debug impls. This crate is almost entirely generated from the Khronos XML registry.

More Repositories

1

hecs

A handy ECS
Rust
963
star
2

hypermine

A hyperbolic voxel game
Rust
160
star
3

oddio

Lightweight game audio
Rust
146
star
4

quicr

Experimental Rust QUIC implementation - moved to https://github.com/djc/quinn
Rust
67
star
5

planetmap

Streaming planetary terrain mapping
Rust
56
star
6

nachat

Portable desktop chat client for Matrix
C++
49
star
7

vk-shader-macros

Procedural macros for working with Vulkan shaders
Rust
41
star
8

lahar

Async-oriented Vulkan helpers
Rust
29
star
9

timer-queue

Pure, minimal, and scalable timers
Rust
24
star
10

reprap-utils

NO LONGER SUPPORTED -- Various lightweight UNIXy command-line utilities for working with RepRap machines on POSIX-compatible systems
C
22
star
11

riot-electron-nix

Deprecated in favor of riot-desktop in nixpkgs
Nix
16
star
12

libreprap

Now living at https://github.com/timschmidt/repsnapper -- Cross-platform cross-machine RepRap communications library
C
16
star
13

clatter

Simplex noise
Rust
15
star
14

fuzzyblue

Real-time physically-based atmospheric scattering using Vulkan and Rust
Rust
13
star
15

lru-slab

Pre-allocated storage with constant-time LRU tracking
Rust
10
star
16

sieve-tree

Rust
9
star
17

metaserve

Toolkit for building meta servers for multiplayer games
Rust
8
star
18

cllvm

Hand-written LLVM bindings for Common Lisp
Common Lisp
7
star
19

blox2d

A lisp port of the Box2D physics engine
Common Lisp
7
star
20

reprap-firmware

A new cleaner, stabler, faster, more portable, and more maintainable firmware for RepRap machines (initially targeted at the Sanguino), written from scratch in conformant C99 to work without the Arduino environment. Please note that although it is nearing completion, the firmware is not yet usable.
C
7
star
21

sd-listen-fds

Minimal self-contained crate to accept file descriptors from systemd
Rust
6
star
22

yapb

Yet Another Progress Bar
Rust
6
star
23

matrix-appservice-irc-nixos

matrix-appservice-irc module for NixOS
Nix
5
star
24

presentash

Rust
4
star
25

opus-mux

Opus file demultiplexer
Rust
4
star
26

Thune

Experimental lisp IRC bot
Common Lisp
3
star
27

icfpc-2012

My team's submission to the 2012 ICFP Programming Contest
Haskell
3
star
28

psf2

Minimal, unopinionated PSF2 bitmap font parser
Rust
3
star
29

cl-chipmunk

Common Lisp CFFI wrapper to the chipmunk 2D physics library
Common Lisp
3
star
30

spangle

Generate plausible, aesthetically appealing spherical starfields
Rust
3
star
31

err-ctx

Contextual error reporting helpers
Rust
2
star
32

llvm-st

ST-based interface to the Haskell LLVM bindings
Haskell
2
star
33

quasigroup-completion

A backtracking quasigroup completion solver whose solutions are verified correct, written in Idris.
2
star
34

bitvis

Bitcoin market visualizer
C
2
star
35

cmpt885-hw2

C++
2
star
36

carchive

Archive encoding for content addressing
Rust
2
star
37

ircl

A minimalist IRC library for Common Lisp
Common Lisp
2
star
38

version-consts-git

Code generation support for git-versioned rust crates that want to know their own version
Rust
2
star
39

quest

Common Lisp
2
star
40

rackup

Rust
1
star
41

pew

Thermodynamic internal ballistics simulation
Rust
1
star
42

rsctp

Native Rust SCTP implementation
Rust
1
star
43

hhue

Command-line control for Philips Hue bridge
Haskell
1
star
44

buclet

CFFI bindings to Bullet
Common Lisp
1
star
45

renderdoc-api-rs

Rust bindings for the renderdoc API
Rust
1
star
46

wair

Rust
1
star
47

Sune

Common Lisp
1
star
48

rustlike

Rust
1
star
49

cmpt885-hw1

C
1
star
50

thune2

Cleaned up IRC bot
Common Lisp
1
star
51

whoosh

Continuous distribution based random gun generator toy
Haskell
1
star
52

capnpc-racket

Racket code generator plugin for Cap'n Proto
Racket
1
star
53

rustart

Rust random art implementation
Rust
1
star
54

fwoosh

OpenGL- and/or game-related fiddlery
Common Lisp
1
star