Skip to content

About

A port of the DAWproject in Rust.

Topics

Resources

Stars

7 stars

Watchers

0 watching

Forks

Repository files navigation

dawproject

Crate API

Dawproject is a format for exchanging user data between digital audio workstations (DAWs). This project is port of DAWproject in Rust.

Usage

You can easily read and write .dawproject files.

use dawproject::prelude::*;

// read dawproject file
let mut reader = DawprojectReader::open("assets/tests/canon.dawproject").unwrap();
reader.read_dawproject().unwrap();
// use it wherever you want
let dawproject = reader.build_dawproject().unwrap();
// Write
let mut writer = DawprojectWriter::create("assets/tests/copied_canon.dawproject").unwrap();
writer.write_dawproject(&dawproject).unwrap();

Documentations

Build from source

The published crate supports Rust 1.88 and newer. This repository pins Rust 1.99.1 so code generation and rustfmt output remain reproducible.

cargo build

Normal builds use the generated Rust models committed under src/generated/. They do not run xsd-parser and do not require either submodule.

The xsd-parser submodule is pinned to commit 96299a06eb207b420c3ce03b6d07c41421f555b0 and is only needed when refreshing the generated models. The source DAWproject schema is pinned to upstream main commit ee4dcdde75940f30e14e55401a26955a58b8322b:

git submodule update --init --recursive
cargo run --manifest-path tools/codegen/Cargo.toml --locked

Commit changes under assets/ and src/generated/ together with any intentional schema or generator update.

About

A port of the DAWproject in Rust.

Topics

Resources

Stars

7 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages