Skip to content

pufferfish-rs/fugu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

fugu

A simple cross-platform rendering library for Rust

Docs Crates.io License

⚠️ 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

About

A simple cross-platform rendering library for Rust

Resources

License

Apache-2.0 and 2 other licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Zlib
LICENSE-ZLIB

Stars

Watchers

Forks

Packages

No packages published

Languages