lilypond

A Rust wrapper and types for GNU LilyPond

2 releases

0.1.1 Oct 18, 2022
0.1.0 May 22, 2020

#105 in Multimedia

GPL-3.0-or-later

20KB
202 lines

Build Status Build status Crate API

lilypond-rs

A Rust wrapper and types for GNU LilyPond.

lilypond-rs provides an API to ergonomically wrap LilyPond, and provide Rust types that resolve to LilyPond output. This is still a work in progress and is not stable as of yet.

Documentation:

Usage

Add this to your Cargo.toml:

[dependencies]
lilypond = "0.1"

Installing LilyPond

Because this library wraps LilyPond, the GNU LilyPond program must be installed before library usage.

After you install LilyPond, check to see if LilyPond is installed:

lilypond --version
GNU LilyPond 2.20.0

Copyright (c) 1996--2015 by
  Han-Wen Nienhuys <hanwen@xs4all.nl>
  Jan Nieuwenhuizen <janneke@gnu.org>
  and others.

This program is free software.  It is covered by the GNU General Public
License and you are welcome to change it and/or distribute copies of it
under certain conditions.  Invoke as `lilypond --warranty' for more
information.

Inspiration

One of the major inspirations for this library is Abjad, and the goal is that eventually a similar compositional workflow can be achieved in Rust.

Contribution

This project is too large for one individual to complete, so contributions are greatly appreciated. All contributors on this project are expected to abide by the Contributor Covenant Code of Conduct.

License

lilypond-rs is distributed under the terms of the GNU General Public License.

This is to respect the philosophy of the GNU LilyPond project. You can learn more about this here.

Dependencies

~3–10MB
~99K SLoC