Crates.io | quilt-rs |
lib.rs | quilt-rs |
version | |
source | src |
created_at | 2023-12-14 01:53:05.688748+00 |
updated_at | 2025-03-03 17:31:19.793289+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 |
Cargo.toml error: | TOML parse error at line 17, column 1 | 17 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include` |
size | 0 |
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 taurpalin
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
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.json
cli::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.
remote
flow::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_hash
flow::certify_latest::tests::test_certifying_latest
)The list
command displays all packages installed in the local domain.
.quilt/data.json
cli::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_model
cli::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