Skip to content

Conversation

@das-Abroxas
Copy link
Contributor

Overview

This pull request represents a substantial development effort rewriting the core functionality for the Pithos file format specification. The changes include a complete implementation of the Pithos file format with encryption, compression, and CLI tooling, alongside the addition of basic RO-Crate metadata support. This work spans from the initial specification draft through to a fully functional system with comprehensive testing and documentation.

Key Changes

Complete Pithos file format implementation: Added PithosWriter and PithosReader with support for encrypted file storage using X25519 key exchange and ChaCha20Poly1305 encryption

Comprehensive CLI tooling: Implemented full command-line interface supporting file creation, extraction, appending, listing, and Crypt4GH conversion operations

RO-Crate metadata integration: Added complete RO-Crate library with support for directory and ZIP formats, including validation framework and programmatic creation via builder patterns

Advanced compression and chunking: Integrated FastCDC content-defined chunking with configurable Zstd compression and automatic compression ratio detection

Robust cryptographic infrastructure: Implemented X25519 key management, ChaCha20Poly1305 encryption helpers, and secure key derivation for multi-recipient encryption

Directory structure preservation: Added support for ingesting and recreating complete directory hierarchies with proper metadata preservation

Extensive test coverage: Added comprehensive test suites covering encryption/decryption, serialization, key management, and file operations with utility functions and dummy data

Remote block reading capability: Implemented foundation for content-addressable storage with IndexMap-based block indexing for future distributed storage features

St4NNi and others added 30 commits February 25, 2025 10:59
- X25519 private key generation
- X25519 private key to/from ASN.1 encoded PEM conversion
- Currently only reads directory
@das-Abroxas das-Abroxas self-assigned this Sep 9, 2025
@das-Abroxas das-Abroxas added the enhancement New feature or request label Sep 9, 2025
# Conflicts:
#	Cargo.lock
#	crates/pithos/Cargo.toml
#	crates/pithos/src/main.rs
#	crates/pithos_lib/Cargo.toml
#	crates/pithos_lib/src/lib.rs
#	crates/pithos_lib/src/transformers/mod.rs
#	crates/pithos_pyo3/Cargo.toml
@codecov
Copy link

codecov bot commented Sep 9, 2025

Codecov Report

❌ Patch coverage is 68.91253% with 1315 lines in your changes missing coverage. Please review.
✅ Project coverage is 68.39%. Comparing base (6a26de2) to head (328ac21).
⚠️ Report is 125 commits behind head on main.

Files with missing lines Patch % Lines
crates/pithos/src/main.rs 0.00% 217 Missing ⚠️
crates/pithos_lib/src/model/structs.rs 50.45% 163 Missing ⚠️
crates/rocrate/src/validation.rs 62.35% 134 Missing ⚠️
crates/pithos_lib/src/io/pithosreader.rs 66.66% 93 Missing ⚠️
crates/pithos_lib/src/helpers/directory.rs 71.93% 87 Missing ⚠️
crates/pithos_lib/src/io/pithoswriter.rs 72.14% 83 Missing ⚠️
crates/rocrate/src/builder.rs 58.10% 75 Missing ⚠️
crates/rocrate/src/entity.rs 77.67% 75 Missing ⚠️
crates/rocrate/src/metadata.rs 77.40% 47 Missing ⚠️
crates/rocrate/src/reader.rs 87.82% 42 Missing ⚠️
... and 15 more
Additional details and impacted files
@@            Coverage Diff             @@
##             main      #14      +/-   ##
==========================================
- Coverage   69.91%   68.39%   -1.53%     
==========================================
  Files          33       27       -6     
  Lines        3497     4445     +948     
==========================================
+ Hits         2445     3040     +595     
- Misses       1052     1405     +353     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@das-Abroxas das-Abroxas merged commit 69696d7 into main Sep 9, 2025
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants