aboutsummaryrefslogtreecommitdiffhomepage
path: root/Cargo.lock
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-08-01 05:26:16 +0900
committernsfisis <nsfisis@gmail.com>2026-08-01 18:41:11 +0900
commit06d2c5c884eee0b5b663730f4d379a7ceae3a8e4 (patch)
tree5cd768e0bdad3f8a056dd9b047de363963315135 /Cargo.lock
parentb8d46b0495d00815a699932ced0b43955c949ab9 (diff)
downloadphp-shirabe-06d2c5c884eee0b5b663730f4d379a7ceae3a8e4.tar.gz
php-shirabe-06d2c5c884eee0b5b663730f4d379a7ceae3a8e4.tar.zst
php-shirabe-06d2c5c884eee0b5b663730f4d379a7ceae3a8e4.zip
feat(php-shim): implement Phar/PharData and the zlib/bzip2 functions
Adopt the tar, flate2, and bzip2 crates to fill in the phar.rs and compress.rs todos: PharData tar/zip reading, building, and whole-archive compression, plus a native .phar reader that follows the php.net file-format manual and verifies hash-based signatures. Callers now propagate the constructor/extract errors PHP throws, and fwrite accepts byte strings so gzread no longer needs lossy UTF-8. The native .phar writing API stays todo!() (no call sites; Composer's Compiler is not ported) and OPENSSL phar signatures are accepted unverified (TODO(phase-c)). This unblocks Tar::getComposerJson and the tar/phar/gzip downloaders; tar_test (7), artifact_repository_test (2), and phar_archiver_test zip (1) are un-ignored. The archive command itself still panics because ArchiveManager::archive always generates glob excludes whose look-ahead regexes the regex crate cannot compile; converting those patterns to regex-compatible ones is a separate, still-undecided work item. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Diffstat (limited to 'Cargo.lock')
-rw-r--r--Cargo.lock35
1 files changed, 35 insertions, 0 deletions
diff --git a/Cargo.lock b/Cargo.lock
index df724be2..6e800afd 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -484,6 +484,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6"
[[package]]
+name = "filetime"
+version = "0.2.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c287a33c7f0a620c38e641e7f60827713987b3c0f26e8ddc9462cc69cf75759"
+dependencies = [
+ "cfg-if",
+ "libc",
+]
+
+[[package]]
name = "find-msvc-tools"
version = "0.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -495,6 +505,7 @@ version = "1.1.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c"
dependencies = [
+ "crc32fast",
"miniz_oxide",
"zlib-rs",
]
@@ -2133,8 +2144,10 @@ name = "shirabe-php-shim"
version = "0.0.1"
dependencies = [
"anyhow",
+ "bzip2",
"chrono",
"fastrand",
+ "flate2",
"indexmap",
"md5",
"regex",
@@ -2146,6 +2159,7 @@ dependencies = [
"sha1",
"sha2 0.11.0",
"shirabe-php-src",
+ "tar",
"tempfile",
"twox-hash",
"zip",
@@ -2298,6 +2312,17 @@ dependencies = [
]
[[package]]
+name = "tar"
+version = "0.4.46"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f6221d9a6003c78398e3b239969f352578258df48c8eb051caadae0015bc840"
+dependencies = [
+ "filetime",
+ "libc",
+ "xattr",
+]
+
+[[package]]
name = "tempfile"
version = "3.27.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3141,6 +3166,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1ffae5123b2d3fc086436f8834ae3ab053a283cfac8fe0a0b8eaae044768a4c4"
[[package]]
+name = "xattr"
+version = "1.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32e45ad4206f6d2479085147f02bc2ef834ac85886624a23575ae137c8aa8156"
+dependencies = [
+ "libc",
+ "rustix",
+]
+
+[[package]]
name = "yoke"
version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"