feat: add corex-storage crate for unified storage abstraction

- Introduced corex-storage crate with support for local disk, S3-compatible, and Google Cloud Storage backends.
- Implemented StorageDriver trait for various storage backends.
- Added LocalFileStorage for local disk operations.
- Added S3Storage for S3-compatible object storage with multipart upload support.
- Added GcsStorage for Google Cloud Storage operations.
- Included error handling for storage operations.
- Added tests for each storage backend to ensure functionality.
- Created README.md for documentation and usage examples.
- Added Apache and MIT licenses for open-source compliance.
This commit is contained in:
asepharyana
2026-08-28 22:24:18 +07:00
parent 6a4b2b8f54
commit db4f277336
47 changed files with 0 additions and 0 deletions
+37
View File
@@ -0,0 +1,37 @@
[package]
name = "corex-crypto"
version = "1.2.0"
edition = "2021"
rust-version = "1.75"
license = "MIT OR Apache-2.0"
repository = "https://github.com/asepharyana/mytheclipse"
homepage = "https://github.com/asepharyana/mytheclipse"
documentation = "https://docs.rs/corex-crypto"
authors = ["asepharyana <superaseph@gmail.com>"]
description = "Safe hashing, encryption, and token helpers (Argon2id, AES-256-GCM, JWT/Paseto) with key rotation support."
readme = "README.md"
keywords = ["crypto", "argon2", "aes-gcm", "jwt", "security"]
categories = ["cryptography", "authentication"]
[features]
default = ["password", "encryption", "tokens"]
# Low-level primitives are always available (zero-cost). The feature flags
# pull in the backing SDK crates.
password = ["dep:password-hash", "dep:argon2"]
encryption = ["dep:aead", "dep:aes-gcm", "dep:rand_core", "dep:rand"]
tokens = ["encryption", "dep:serde", "dep:serde_json", "dep:base64", "dep:jsonwebtoken"]
[dependencies]
tracing = "0.1"
# Optional backends
argon2 = { version = "0.5", default-features = false, features = ["std"], optional = true }
password-hash = { version = "0.5", default-features = false, features = ["std"], optional = true }
aes-gcm = { version = "0.10", default-features = false, features = ["aes", "alloc"], optional = true }
aead = { version = "0.5", default-features = false, features = ["alloc"], optional = true }
jsonwebtoken = { version = "9", default-features = false, optional = true }
base64 = { version = "0.22", default-features = false, optional = true }
serde = { version = "1", optional = true, features = ["derive"] }
serde_json = { version = "1", optional = true }
rand = { version = "0.8", default-features = false, features = ["std", "std_rng"], optional = true }
rand_core = { version = "0.6", optional = true }