Expand description
project_io — Serialización, guardado y carga de proyectos DAW.
§Formato de archivo (.dawproj)
┌─────────────────────────────────────┐
│ MAGIC [8 bytes] "DAWPROJ\0" │
│ VERSION [4 bytes] u32 le │
│ FLAGS [4 bytes] u32 le │
│ JSON_LEN [8 bytes] u64 le │
│ BLOB_LEN [8 bytes] u64 le │
│ CHECKSUM [8 bytes] FNV-1a 64 │
├─────────────────────────────────────┤
│ JSON_BODY [JSON_LEN bytes] UTF-8 │ ← estado del proyecto (legible)
├─────────────────────────────────────┤
│ BLOB_BODY [BLOB_LEN bytes] │ ← estados opacos de plugins (binario)
└─────────────────────────────────────┘La separación JSON + BLOB permite editar el proyecto a mano si es necesario sin corromper los estados binarios de los plugins.
Re-exports§
pub use format::FileHeader;pub use format::FILE_MAGIC;pub use format::CURRENT_VERSION;pub use schema::ProjectSchema;pub use schema::TrackSchema;pub use schema::ClipSchema;pub use schema::NoteSchema;pub use schema::MixerSchema;pub use schema::ChannelSchema;pub use schema::PluginSchema;pub use schema::AutomationSchema;pub use serializer::ProjectSerializer;pub use deserializer::ProjectDeserializer;pub use autosave::AutoSave;pub use history::ProjectHistory;pub use history::Snapshot;pub use error::ProjectIoError;
Modules§
- autosave
- deserializer
- error
- format
- history
- schema
- Schema del proyecto en JSON.
- serializer