VexObj
Stockage objet S3-compatible auto-hébergé, avec traitement média, chiffrement au repos et réplication — le tout dans un seul binaire Rust de ~14 Mo.
À propos du projet
VexObj est une plateforme de stockage objet auto-hébergée livrée en un unique binaire Rust de ~14 Mo. Elle expose à la fois une API REST native (/v1/*) et une API S3-compatible (/s3/*) avec vérification réelle des signatures AWS Signature V4 — n'importe quel client S3 (aws-sdk, boto3, mc, rclone) s'y connecte sans modification. Là où MinIO/Garage ne font que du stockage pur, VexObj intègre dans le même processus le traitement média : transformations d'images à la volée (resize/crop, négociation automatique AVIF/WebP/JPEG), extraction de métadonnées vidéo et génération de vignettes via ffmpeg, avec cache multi-niveaux (LRU mémoire + disque). Côté stockage : versioning, object lock WORM (rétention + legal hold), règles de cycle de vie, déduplication par contenu, chiffrement AES-256-GCM au repos et réplication asynchrone primaire→réplica. Les blobs vivent sur disque local ou délèguent à n'importe quel backend S3 (R2, B2, Wasabi, MinIO). Ciblé en priorité pour les instances du fediverse (Mastodon, PeerTube, Pixelfed). SDKs officiels TypeScript, Python et Go.
Fonctionnalités clés
- API S3-compatible avec vérification réelle AWS SigV4 — compatible aws-sdk, boto3, rclone, mc
- Traitement média intégré : transforms d'images à la volée (AVIF/WebP), vignettes vidéo ffmpeg
- Versioning, object lock WORM (rétention + legal hold), lifecycle et déduplication par contenu
- Chiffrement AES-256-GCM au repos (~1,25 Go/s) et réplication asynchrone primaire→réplica
- Un seul binaire ~14 Mo, métadonnées SQLite, backend blob pluggable (R2, B2, MinIO) — SDKs TS/Python/Go
$ git clone https://github.com/aniasse/vexobj.git
Cloning into 'vexobj'...
remote: Enumerating objects: done.
$ cdvexobj
$ cat README.md
# VexObj
Stockage objet S3-compatible auto-hébergé, avec traitement média, chiffrement au repos et réplication — le tout dans un seul binaire Rust de ~14 Mo.
▋Infos du projet
Voir le code source
github.com/aniasse/vexobj