Skip to content

Latest commit

 

History

History
74 lines (53 loc) · 3.76 KB

README.md

File metadata and controls

74 lines (53 loc) · 3.76 KB

IC-OSS

🗂 A decentralized Object Storage Service on the Internet Computer.

💝 Backed by a $25k Developer Grant from the DFINITY Foundation.

Overview

ic-oss is a decentralized object storage service fully running on the Internet Computer that provides:

  • Simple and efficient file storage/retrieval
  • File directory tree structure
  • Unlimited horizontal scalability
  • Enterprise-grade access control

Perfect for NFTs, chain blocks, verifiable credentials, blogs, documents, and decentralized applications.

IC-OSS

Key Features

  • Large File Support
    • File sharding
    • File encryption
    • Concurrent high-speed uploads
    • Resumable uploads
    • Segmented downloads
  • Advanced Organization
    • File directory tree structure
    • Bucket-based clustering
  • Flexible Access Control
    • Public/private access
    • Read/write permissions
    • File/folder/bucket level controls

Check more details:

Packages

Package Description
ic_oss_bucket Storage bucket smart contract
ic_oss_cluster Cluster management smart contract
ic-oss-can Rust library for implementing file storage in smart contract
ic-oss-types Rust shared type definitions
ic-oss Rust client SDK
ic_oss_ts Typescript client SDK
ic-oss-cli Command-line tool implemented in Rust

Who's using?

  • dMsg.net: The world's 1st decentralized end-to-end encrypted messaging application fully running on the Internet Computer blockchain. dMsg.net uses IC-OSS to store user avatars (public), channel logos and encrypted files (private).

If you plan to use this project and have any questions, feel free to open an issue. I will address it as soon as possible.

Integration

IC-OSS Sequence

  1. Dapp backend: Configure access control via ic_oss_cluster
  2. Dapp frontend: Obtain access_token using ic-oss-ts SDK
  3. Dapp frontend: Use token to interact with ic_oss_bucket

Examples

  • examples/ai_canister: A Rust demonstration project used to show how to implement large file storage in the ICP canister by using ic-oss-can.
  • examples/upload_js: A Javascript demonstration project used to show how to upload files to ic_oss_bucket canister by using @ldclabs/ic_oss_ts.

License

Copyright © 2024-2025 LDC Labs.

ldclabs/ic-oss is licensed under the MIT License. See LICENSE for the full license text.