| Crates.io | quilt-rs |
| lib.rs | quilt-rs |
| version | 0.19.0 |
| created_at | 2023-12-14 01:53:05.688748+00 |
| updated_at | 2025-04-02 16:28:13.044843+00 |
| description | Rust library for accessing Quilt data packages. |
| homepage | https://www.quiltdata.com |
| repository | https://github.com/quiltdata/quilt-rs |
| max_upload_size | |
| id | 1069027 |
| size | 655,962 |
Library and CLI provide a set of commands for managing data packages, allowing users to install, commit, push, and pull packages from S3 storage, as well as browse and track changes in package contents.
It supports operations like installing specific paths from packages, managing package metadata, and tracking package lineage with features for viewing status and handling workflows.
cargo test
cargo install cargo-watch
cargo watch # -x test
cargo update
cargo test
cargo publish
cargo install cargo-tarpaulin
cargo tarpaulin --out html
open tarpaulin-report.html
cargo install cargo-upgrades
cargo upgrades
sha256sum calculates SHA256 hash of a file.base64 converts binary data to base64.xxd -r -p converts HEX produced by SHA256 to binarysplit -b 8388608 splits file into 8 * 1024 * 1024 bytessha256sum ./FILE | xxd -r -p | base64
Chunksum is stable:
sha256sum ./FILE | xxd -r -p | sha256sum | xxd -r -p | base64
split -b 8388608 ./FILE --filter='sha256sum' | xxd -r -p | sha256sum | xxd -r -p | base64
split -l 1 ~/MANIFEST.jsonl --filter="jq -cSM 'del(.physical_keys)'" | tr -d '\n' | sha256sum
Install a package using a quilt+s3://bucket#package=namespace/name@hash&path=some/file.txt URI.
.quilt/data.json.quilt/packages/<bucket>/<hash>.quilt/installed/<namespace>/<hash>.quilt/objects/<hash><namespace>/<name>cli::install::tests::test_valid_command)cli::install::tests::test_invalid_command)flow::install::tests::test_installing_when_no_permissions)The commit command creates a new revision of an installed package by capturing changes to tracked files along with metadata.
.quilt/objects/<hash>.quilt/installed/<namespace>/<hash>.quilt/data.json.quilt/data.jsoncli::commit::tests::test_commit_package_with_message_only, cli::commit::tests::test_commit_package_with_workflow_and_meta, cli::commit::tests::test_commit_package_with_meta_only)flow::commit::tests::test_modifying_and_commit)flow::commit::tests::test_adding_and_commit)flow::commit::tests::test_removing_and_commit)cli::commit::tests::test_model)cli::commit::tests::test_invalid_command)cli::commit::tests::test_throwing_error_when_workflow_set_but_no_workflows_config)The preparation step for the commit. It calculates all the necessary hashes for the files, but does not create a new commit.
The push command uploads committed manifests and files to the remote S3 storage. It reuses existing objects, and tag the remote package as latest if tracking.
.quilt/objects/<hash> to remote S3 storageremote package lineageflow::push::tests::test_single_chunk_push)flow::push::tests::test_no_push_if_no_commit)cli::push::tests::test_namespace_not_found)The pull command downloads the latest version of a package (manifest and installed files) from remote storage. It disallow to pull when there are uncommitted local changes or pending commits.
remote.hash != base_hash)cli::pull::tests::test_model, cli::pull::tests::test_valid_command)flow::pull::tests::test_no_pull_if_up_to_date)flow::pull::tests::test_no_pull_if_changes)flow::pull::tests::test_no_pull_if_commit)flow::pull::tests::test_no_pull_if_diverged)cli::pull::tests::test_invalid_command)The reset command forcefully updates a package to match the remote latest version, discarding any local changes or commits.
remoteflow::reset_to_latest::tests::test_reseting_to_latest)flow::reset_to_latest::tests::test_if_already_latest)The certify command marks a specific package version as the "latest" in remote storage.
latest_hash and base_hashflow::certify_latest::tests::test_certifying_latest)The list command displays all packages installed in the local domain.
.quilt/data.jsoncli::list::tests::test_empty_list, cli::list::tests::test_command_empty)cli::list::tests::test_model, cli::list::tests::test_command_with_package)cli::list::tests::test_invalid_command)cli::list::tests::test_invalid_command)The browse command displays the contents and metadata of a remote package manifest using quilt+s3://bucket#package=namespace/name@hash URI
.quilt/packages/<bucket>/<hash>cli::browse::tests::test_modelcli::browse::tests::test_model)cli::browse::tests::test_model)flow::browse::tests::test_if_cached)flow::browse::tests::test_caching_parquet)flow::browse::tests::test_caching_jsonl) Browse with invalid URI (cli::browse::tests::test_if_uri_is_invalid)
Browse non-existent package
Browse with network failures
Browse with corrupted cache (flow::browse::tests::test_if_cached_random_file)
TBD