# juicedata/juicefs

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/juicedata-juicefs).**

13,233 stars · 1,159 forks · Go · apache-2.0

## Links

- GitHub: https://github.com/juicedata/juicefs
- Homepage: https://juicefs.com
- awesome-repositories: https://awesome-repositories.com/repository/juicedata-juicefs.md

## Topics

`bigdata` `cloud-native` `distributed-systems` `filesystem` `go` `golang` `hdfs` `object-storage` `posix` `redis` `s3` `storage`

## Description

JuiceFS is a distributed file system designed to mount object storage as a local, POSIX-compliant drive. It functions as a cloud-native persistent storage layer that decouples file metadata from raw data, storing metadata in a transactional database while keeping data blocks in object storage. This architecture enables multiple hosts across different regions to access the same storage simultaneously while maintaining strong consistency.

The system distinguishes itself by performing data processing, including compression and encryption, directly on the client side before transmission. By splitting files into fixed-size chunks, it optimizes storage management and enables parallel data access. It provides standardized interfaces for big data frameworks and container orchestrators, allowing existing applications to interact with object storage through familiar file system protocols without requiring custom storage drivers.

Beyond its core mounting capabilities, the project supports concurrent file access management through distributed metadata locking to prevent data corruption. It serves as a bridge for big data engines and containerized environments, ensuring that data remains secure and consistent across distributed clusters.

## Tags

### Data & Databases

- [Filesystem Mounts](https://awesome-repositories.com/f/data-databases/persistent-storage-volumes/filesystem-mounts.md) — Mounts remote object storage as a local disk for simultaneous access across multiple regions. ([source](https://juicefs.com/docs/community/introduction))
- [POSIX-Compliant File Systems](https://awesome-repositories.com/f/data-databases/posix-compliant-file-systems.md) — Provides a POSIX-compliant file system interface that mounts remote object storage as a local drive for simultaneous multi-host access.
- [Cloud-Native Storage Layers](https://awesome-repositories.com/f/data-databases/data-engineering/cloud-native-storage-layers.md) — Serves as a cloud-native persistent storage layer providing shared, consistent data access for containerized applications.
- [Decoupled Architectures](https://awesome-repositories.com/f/data-databases/data-governance-modeling/data-management-governance/metadata-management-systems/metadata-databases/decoupled-architectures.md) — Separates file system metadata from raw data blocks to optimize performance and scalability.
- [Object Storage](https://awesome-repositories.com/f/data-databases/object-storage.md) — Acts as a secure gateway that encrypts and compresses data before storing it in cloud object storage.
- [Strong Consistency Guarantees](https://awesome-repositories.com/f/data-databases/strong-consistency-guarantees.md) — Guarantees immediate visibility of file changes across all connected servers. ([source](https://juicefs.com/docs/community/introduction))
- [Data Storage Layers](https://awesome-repositories.com/f/data-databases/data-engineering-infrastructure/data-persistence-storage/data-storage-layers.md) — Connects storage layers directly to distributed computing tools using standard protocols. ([source](https://juicefs.com/docs/community/introduction))
- [Object Storage Integrations](https://awesome-repositories.com/f/data-databases/object-storage-integrations.md) — Connects distributed computing engines to scalable object storage via high-performance interfaces.
- [Chunked File Storages](https://awesome-repositories.com/f/data-databases/storage-abstraction/file-storage-services/chunked-file-storages.md) — Splits large files into fixed-size chunks to optimize storage management and parallel access.
- [Storage Gateways](https://awesome-repositories.com/f/data-databases/storage-gateways.md) — Exposes object storage as a standard file system, allowing applications to interact with cloud data using familiar file protocols.
- [Data Compression Algorithms](https://awesome-repositories.com/f/data-databases/data-compression-algorithms.md) — Applies efficient compression algorithms before writing data to optimize storage usage. ([source](https://juicefs.com/docs/community/introduction))

### DevOps & Infrastructure

- [S3-Compatible Storage Adapters](https://awesome-repositories.com/f/devops-infrastructure/cloud-infrastructure/cloud-computing-serverless/cloud-storage/s3-compatible-storage-adapters.md) — Provides an S3-compatible gateway for seamless integration with existing cloud-native tools. ([source](https://juicefs.com/docs/community/introduction))
- [Container Storage Persistence](https://awesome-repositories.com/f/devops-infrastructure/container-storage-persistence.md) — Provides shared persistent storage for containerized applications through standard interfaces. ([source](https://juicefs.com/docs/community/introduction))
- [Distributed Locking](https://awesome-repositories.com/f/devops-infrastructure/distributed-locking.md) — Coordinates concurrent file operations across nodes using distributed metadata locking.
- [Container Orchestration Integrations](https://awesome-repositories.com/f/devops-infrastructure/container-orchestration-integrations.md) — Manages persistent storage resources in containerized environments through standard interfaces. ([source](https://juicefs.com/docs/community/introduction))
- [Storage Decoupling](https://awesome-repositories.com/f/devops-infrastructure/storage-decoupling.md) — Separates file metadata from data storage to allow independent backend selection. ([source](https://juicefs.com/docs/community/introduction))

### Networking & Communication

- [API Compatibility](https://awesome-repositories.com/f/networking-communication/api-integration-frameworks/api-management-integration/api-compatibility.md) — Implements standard file system protocols to bridge big data applications with object storage. ([source](https://juicefs.com/docs/community/introduction))

### Operating Systems & Systems Programming

- [Object Storage Translation Layers](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/system-programming-primitives/system-abstractions/cross-platform-compatibility-layers/protocol-abstraction-layers/object-storage-translation-layers.md) — Bridges big data engines to object storage by translating standard file system protocols into object storage operations.
- [File Lock Managers](https://awesome-repositories.com/f/operating-systems-systems-programming/system-administration-maintenance/file-system-management/file-lock-managers.md) — Coordinates read and write operations across multiple hosts using file locking mechanisms. ([source](https://juicefs.com/docs/community/introduction))

### Security & Cryptography

- [Storage Encryption](https://awesome-repositories.com/f/security-cryptography/storage-encryption.md) — Splits files into encrypted segments stored in object storage to ensure data privacy. ([source](https://juicefs.com/docs/community/introduction))
- [Client-Side Encryption](https://awesome-repositories.com/f/security-cryptography/client-side-encryption.md) — Performs encryption and compression on the client side before data transmission.
- [Data Encryption](https://awesome-repositories.com/f/security-cryptography/data-encryption.md) — Protects sensitive information by performing client-side encryption for data both in transit and at rest. ([source](https://juicefs.com/docs/community/introduction))

### Software Engineering & Architecture

- [Distributed Data Management](https://awesome-repositories.com/f/software-engineering-architecture/distributed-systems/distributed-data-management.md) — Decouples file information from raw data to ensure consistency across distributed environments.
