Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
600 changes: 89 additions & 511 deletions Cargo.lock

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ members = [
resolver = "2"

[workspace.package]
version = "0.7.2"
version = "0.7.3"
authors = ["Jannis Schlegel <das_Abroxas@proton.me>", "Sebastian Beyvers <sb@pus.de>"]
edition = "2024"
rust-version = "1.88"
Expand Down
2 changes: 1 addition & 1 deletion LICENSE-APACHE
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@
same "printed page" as the copyright notice for easier
identification within third-party archives.

Copyright [2024] [ArunaStorage Team]
Copyright [2026] [ArunaEngine Team]

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion LICENSE-MIT
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
The MIT License (MIT)

Copyright (c) 2024 ArunaStorage Team
Copyright (c) 2024 ArunaEngine Team

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,9 @@

<p align="center">
<a href="https://www.rust-lang.org/"><img src="https://img.shields.io/badge/built_with-Rust-dca282.svg" alt="Language: Rust"></a>
<a href="https://github.com/ArunaStorage/aruna-file/blob/main/LICENSE"><img src="https://img.shields.io/badge/License-MIT-brightgreen.svg" alt="License: MIT"></a>
<a href="#"><img src="https://github.com/ArunaStorage/aruna-file/actions/workflows/push.yaml/badge.svg" alt="License: MIT"></a>
<a href="https://github.com/arunaengine/aruna-file/blob/main/LICENSE-MIT"><img src="https://img.shields.io/badge/License-MIT-brightgreen.svg" alt="License: MIT"></a>
<a href="https://github.com/arunaengine/aruna-file/blob/main/LICENSE-APACHE"><img src="https://img.shields.io/badge/License-APACHE-brightgreen.svg" alt="License: Apache 2.0"></a>
<a href="https://codecov.io/gh/ArunaStorage/pithos"><img src="https://codecov.io/github/arunaengine/pithos/coverage.svg?branch=main" alt="Codecov"></a>
</p>

<p align="center">🔑 A secure, fast and versatile package file format for object storage focused data management 📦</p>
Expand Down
4 changes: 2 additions & 2 deletions crates/pithos/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[package]
name = "pithos"
description = "CLI for the Pithos container file format"
version = "0.7.2"
version = "0.7.3"
authors.workspace = true
edition.workspace = true
rust-version.workspace = true
Expand All @@ -10,7 +10,7 @@ license.workspace = true

[dependencies]
clap = { version = "4.6.1", features = ["derive"] }
pithos_lib = { version = "0.7.2", path = "../pithos_lib" }
pithos_lib = { version = "0.7.3", path = "../pithos_lib" }
thiserror = { workspace = true }
tracing.workspace = true
tracing-subscriber.workspace = true
Expand Down
3 changes: 2 additions & 1 deletion crates/pithos/README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
# Pithos CLI

[![Rust](https://img.shields.io/badge/built_with-Rust-dca282.svg)](https://www.rust-lang.org/)
[![License](https://img.shields.io/badge/License-MIT-brightgreen.svg)](https://github.com/ArunaStorage/aruna-file/blob/main/LICENSE)
[![License](https://img.shields.io/badge/License-MIT-brightgreen.svg)](https://github.com/arunaengine/aruna-file/blob/main/LICENSE-MIT)
[![License](https://img.shields.io/badge/License-APACHE-brightgreen.svg)](https://github.com/arunaengine/aruna-file/blob/main/LICENSE-APACHE)


CLI application for handling Pithos (.pto) files.
Expand Down
6 changes: 3 additions & 3 deletions crates/pithos_lib/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[package]
name = "pithos_lib"
description = "Library and components for encrypting / compressing pithos (.pith) files, including specification"
version = "0.7.2"
version = "0.7.3"
authors.workspace = true
edition.workspace = true
rust-version.workspace = true
Expand All @@ -15,12 +15,12 @@ blake3 = "1.8.2"
byteorder = "1.5.0"
chacha20poly1305 = "0.11.0"
crc32fast = "1.5.0"
cap-std = "4.0.2"
digest = "0.11.3"
fastcdc = "4.0.1"
indexmap = "2.11.0"
integer-encoding = "4.0.2"
integer-encoding = "4.1.0"
pkcs8 = { version = "0.11.0", features = ["pem", "alloc"] }
reqwest = { version = "0.13.4", features = ["blocking"] }
ro-crate-rs = { version = "0.5.1", default-features = false }
shake = "0.1.0"
thiserror = { workspace = true }
Expand Down
4 changes: 2 additions & 2 deletions crates/pithos_lib/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[![Rust](https://img.shields.io/badge/built_with-Rust-dca282.svg)](https://www.rust-lang.org/)
[![License](https://img.shields.io/badge/License-MIT-brightgreen.svg)](https://github.com/ArunaStorage/aruna-file/blob/main/LICENSE)
![CI](https://github.com/ArunaStorage/aruna-file/actions/workflows/push.yaml/badge.svg)
[![License](https://img.shields.io/badge/License-MIT-brightgreen.svg)](https://github.com/arunaengine/aruna-file/blob/main/LICENSE-MIT)
[![License](https://img.shields.io/badge/License-APACHE-brightgreen.svg)](https://github.com/arunaengine/aruna-file/blob/main/LICENSE-APACHE)
[![Codecov](https://codecov.io/github/ArunaStorage/aruna-file/coverage.svg?branch=main)](https://codecov.io/gh/ArunaStorage/aruna-file)
[![Dependency status](https://deps.rs/repo/github/ArunaStorage/aruna-file/status.svg)](https://deps.rs/repo/github/ArunaStorage/aruna-file)
___
Expand Down
59 changes: 59 additions & 0 deletions crates/pithos_lib/src/error.rs
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,32 @@ pub enum PithosError {
Serialization(#[from] SerializationError),
#[error("Deserialization error: {0:?}")]
Deserialization(#[from] DeserializationError),
#[error("Unsupported file version: supported {supported:#06x}, actual {actual:#06x}")]
UnsupportedFileVersion { supported: u16, actual: u16 },
#[error("Multiple reader keys are not supported")]
UnsupportedMultipleReaderKeys,
#[error("Reference content is not supported for file entry construction")]
UnsupportedReferenceContent,
#[error("Invalid directory marker: expected {expected:?}, got {actual:?}")]
InvalidDirectoryMarker { expected: [u8; 8], actual: [u8; 8] },
#[error("Directory length mismatch: expected {expected}, got {actual}")]
DirectoryLengthMismatch { expected: u64, actual: u64 },
#[error("Directory checksum mismatch: expected {expected:#010x}, got {actual:#010x}")]
DirectoryChecksumMismatch { expected: u32, actual: u32 },
#[error("Directory parser consumption mismatch: expected {expected}, got {actual}")]
DirectoryConsumptionMismatch { expected: u64, actual: u64 },
#[error("{field} exceeds limit {limit}: {actual}")]
LimitExceeded {
field: &'static str,
limit: u64,
actual: u64,
},
#[error("allocation failed for {field}: {size}")]
AllocationFailed { field: &'static str, size: u64 },
#[error("invalid directory range: {0}")]
InvalidDirectoryRange(String),
#[error("invalid directory chain: {0}")]
InvalidDirectoryChain(String),
#[error("Crypt error: {0}")]
Crypt(#[from] CryptError),
#[error("Crypt4GH error: {0}")]
Expand Down Expand Up @@ -63,16 +89,49 @@ pub enum PithosError {
UnsupportedZipEntry(String),
#[error("Invalid block data state: {0}")]
InvalidBlockDataState(String),
#[error("external block source required")]
ExternalBlockSourceRequired,
#[error("external block framing error: {0}")]
ExternalBlockFraming(String),
#[error("Block hash not found: {0:?}")]
BlockHashNotFound([u8; 32]),
#[error("Block size mismatch: expected {expected}, got {actual}")]
BlockSizeMismatch { expected: u64, actual: u64 },
#[error("Block hash mismatch: expected {expected:?}, got {actual:?}")]
BlockHashMismatch {
expected: [u8; 32],
actual: [u8; 32],
},
#[error(
"Block index conflict for hash {hash:?}: existing original size {existing_original_size}, new original size {new_original_size}"
)]
BlockIndexConflict {
hash: [u8; 32],
existing_original_size: u64,
new_original_size: u64,
},
#[error("File not found: {0}")]
FileNotFound(String),
#[error("File already exists: {0}")]
DuplicateFileId(String),
#[error("File ID allocation is exhausted")]
FileIdExhausted,
#[error("Relation id already occupied: {0}")]
RelationIdOccupied(u64),
#[error("Path already occupied: {0}")]
PathOccupied(String),
#[error("Invalid archive path {path}: {reason}")]
InvalidArchivePath { path: String, reason: String },
#[error("Invalid symlink target {target} for {path}: {reason}")]
InvalidSymlinkTarget {
path: String,
target: String,
reason: String,
},
#[error("Invalid symlink entry {path}: {reason}")]
InvalidSymlinkEntry { path: String, reason: String },
#[error("Extraction collision at {path}: {reason}")]
ExtractionCollision { path: String, reason: String },
#[error("Invalid file type: {0}")]
InvalidFileType(String),
#[error("No recipient section found for the provided private key")]
Expand Down
Loading
Loading