Crate tacos

Crate tacos 

Source
Expand description

§tacos

Crates.io docs.rs License codecov Experimental

tacos is build system infrastructure on top of picante.

It provides the glue between the file system and picante’s incremental query system:

  • File watching: Efficient, debounced file system notifications via notify
  • Content-addressed storage: Hash-based blob storage for large artifacts
  • Content hashing: Fast hashing via rapidhash for cache busting and change detection

§Architecture

+-----------------------------------+
|  your build system                |  <- domain-specific queries
+-----------------------------------+
|  tacos                            |  <- file watching, CAS, hashing
+-----------------------------------+
|  picante                          |  <- pure incremental queries
+-----------------------------------+

§Example

use tacos::{FileWatcher, ContentStore, content_hash};

// Content-addressed storage for build artifacts
let store = ContentStore::open(".cache/content-store")?;

// Hash content for cache keys
let hash = content_hash(b"file contents");

§See Also

  • picante - Async incremental query runtime
  • dodeca - Static site generator built on picante + tacos

§License

Licensed under either of Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0) or MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT) at your option.

Re-exports§

pub use cas::ContentStore;
pub use hash::InputHash;
pub use hash::content_hash;
pub use watcher::FileWatcher;

Modules§

cas
Content-addressed storage for incremental builds
hash
Content hashing utilities
watcher
File system watching with debouncing