#music #notation #typography #lilypond


A Rust wrapper and types for GNU LilyPond

1 unstable release

0.1.0 May 22, 2020

#67 in Multimedia



Build Status Build status Crate API


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.



Add this to your Cargo.toml:

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


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.


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.


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.


~47K SLoC