fugu

Crates.iofugu
lib.rsfugu
version0.1.0
sourcesrc
created_at2022-04-09 00:58:10.473703
updated_at2022-06-05 05:17:07.051395
descriptionA simple cross-platform rendering library
homepage
repositoryhttps://github.com/pufferfish-rs/fugu/
max_upload_size
id564478
size114,925
lunabunn (lunabunn)

documentation

README

fugu

A simple cross-platform rendering library for Rust

Docs Crates.io License

:warning: DISCLAIMER: fugu is in very early stages of development. APIs can and will change, many basic features are missing, and parts of this README may not reflect the current state of the crate. I would recommend against using this in your projects just yet, but for those brave enough, now is the time for suggestions and feature requests!

Goals

  • Simple, modern, and safe API
  • Fast compile times with clean builds
  • Portability; only depends on core, alloc, and the rendering backend
  • Transparent implementation; internal abstractions are minimal and easy to grok or hack

Non-Goals

  • Windowing or context creation (use glutin, sdl2, etc.)
  • "Advanced" functionality (use wgpu or Vulkan/Metal/DirectX/... directly)
  • Shader translation (use naga or SPIRV-cross)
  • GPU-side safety guarantees; the API is safe Rust but can still produce crashes or UB

Platform Support

Implemented

  • Windows (OpenGL via glow)
  • OS X (OpenGL via glow)
  • Linux (OpenGL via glow*)
  • Android (OpenGL ES via glow*)
  • iOS (OpenGL ES via glow*)

* Untested. These should work in theory, but don't be surprised if they don't. In that case, please open an issue or PR.

Desired

  • Web (WebGL); this should be trivial with glow but a dependency on web-sys may not be ideal
  • OS X/iOS (Metal); Apple has depricated OpenGL, and although OpenGL probably won't go anywhere any time soon, Metal should be used for futureproofing

Acknowledgements

Commit count: 19

cargo fmt