PistonDevelopers/graphics

A library for 2D graphics, written in Rust, that works with multiple back-ends

Rust

476

1,329 commits

updated Sep 17, 2024

See the code

README

Graphics Build Status Crates.io Crates.io

A library for 2D graphics, written in Rust, that works with multiple back-ends.

Maintainers: @bvssvni

Documentation

Getting Started

How to contribute

Motivation

Sharing graphics source code across projects in Rust

Rust is programming language developed by Mozilla and the Rust community. It is fast, safe, concurrent and cross platform. Because of the many numbers of potential platforms (read: all kinds of computers), it would be nice to have a 2D graphics library that works with multiple back-ends, so you don't have to invent a new graphics engine for each platform you are working on.

One trait for all back-ends

To write your own back-end, use the Graphics trait. The Graphics trait implements default behavior for some methods, which can be overridden for higher quality or better performance.

Goals

  • Easy to use
  • Minimal dependencies
  • Vector graphics
  • Images
  • Text
  • Clipping
  • To have a feature complete library for 2D graphics in general

Non-Goals

  • Image formats
  • Backward compatibility (expect lot of breaking)
  • Platform or back-end specific code
  • 3D
  • Physics
  • Node tree
  • One-to-one correspondence with standards
  • Integration with platform GUI
  • Resolution detection

Used by

Dependencies

dependencies

2d-graphics
piston
piston-game-engine
rust

PistonDevelopers/graphics

A library for 2D graphics, written in Rust, that works with multiple back-ends

Rust

476

1,329 commits

updated Sep 17, 2024

See the code

README

Graphics Build Status Crates.io Crates.io

A library for 2D graphics, written in Rust, that works with multiple back-ends.

Maintainers: @bvssvni

Documentation

Getting Started

How to contribute

Motivation

Sharing graphics source code across projects in Rust

Rust is programming language developed by Mozilla and the Rust community. It is fast, safe, concurrent and cross platform. Because of the many numbers of potential platforms (read: all kinds of computers), it would be nice to have a 2D graphics library that works with multiple back-ends, so you don't have to invent a new graphics engine for each platform you are working on.

One trait for all back-ends

To write your own back-end, use the Graphics trait. The Graphics trait implements default behavior for some methods, which can be overridden for higher quality or better performance.

Goals

  • Easy to use
  • Minimal dependencies
  • Vector graphics
  • Images
  • Text
  • Clipping
  • To have a feature complete library for 2D graphics in general

Non-Goals

  • Image formats
  • Backward compatibility (expect lot of breaking)
  • Platform or back-end specific code
  • 3D
  • Physics
  • Node tree
  • One-to-one correspondence with standards
  • Integration with platform GUI
  • Resolution detection

Used by

Dependencies

dependencies

2d-graphics
piston
piston-game-engine
rust

Project health

Overall

2.7/10

Maintained

0/10

Code review

2/10
OpenSSF Scorecard

Significant stargazers

yazgoo

52 followers · starred Jan 2020

Felix S Klock II

548 followers · starred Jul 2017

Ana

967 followers · starred May 2014

Tim Hutt

68 followers · starred Jan 2019