https://github.com/ldclabs/ic-oss
🗂 A decentralized Object Storage Service on the Internet Computer
https://github.com/ldclabs/ic-oss
canister ic icp oss s3
Last synced: 3 months ago
JSON representation
🗂 A decentralized Object Storage Service on the Internet Computer
- Host: GitHub
- URL: https://github.com/ldclabs/ic-oss
- Owner: ldclabs
- License: apache-2.0
- Created: 2024-05-10T16:08:36.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-09T02:49:42.000Z (5 months ago)
- Last Synced: 2025-02-26T09:13:31.565Z (4 months ago)
- Topics: canister, ic, icp, oss, s3
- Language: Rust
- Homepage:
- Size: 729 KB
- Stars: 27
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE-APACHE
Awesome Lists containing this project
- awesome-internet-computer - ic-oss - A decentralized Object Storage Service on the IC. (Storage and Databases / Candid implementations)
README
# `IC-OSS`
🗂 A decentralized Object Storage Service on the Internet Computer.
💝 Backed by a **$25k Developer Grant** from the [DFINITY Foundation](https://dfinity.org/grants).
## 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 controlPerfect for NFTs, chain blocks, verifiable credentials, blogs, documents, and decentralized applications.

## 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 controlsCheck more details:
- [Bucket features](https://github.com/ldclabs/ic-oss/blob/main/src/ic_oss_bucket/README.md)
- [Cluster features](https://github.com/ldclabs/ic-oss/blob/main/src/ic_oss_cluster/README.md)
- [Access Control](https://github.com/ldclabs/ic-oss/blob/main/docs/access_control.md)## Packages
| Package | Description |
| :------------------------------------------------------------------------------- | :----------------------------------------------------------- |
| [ic_oss_bucket](https://github.com/ldclabs/ic-oss/tree/main/src/ic_oss_bucket) | Storage bucket smart contract |
| [ic_oss_cluster](https://github.com/ldclabs/ic-oss/tree/main/src/ic_oss_cluster) | Cluster management smart contract |
| [ic-oss-can](https://github.com/ldclabs/ic-oss/tree/main/src/ic_oss_can) | Rust library for implementing file storage in smart contract |
| [ic-oss-types](https://github.com/ldclabs/ic-oss/tree/main/src/ic_oss_types) | Rust shared type definitions |
| [ic-oss](https://github.com/ldclabs/ic-oss/tree/main/src/ic_oss) | Rust client SDK |
| [ic_oss_ts](https://github.com/ldclabs/ic-oss/tree/main/src/ic_oss_ts) | Typescript client SDK |
| [ic-oss-cli](https://github.com/ldclabs/ic-oss/tree/main/src/ic_oss_cli) | Command-line tool implemented in Rust |## Who's using?
- [dMsg.net](https://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

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](https://github.com/ldclabs/ic-oss/tree/main/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](https://github.com/ldclabs/ic-oss/tree/main/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`.
- [examples/video_player](https://github.com/ldclabs/ic-oss/tree/main/examples/video_player): A video player website to test HTTP range request.## License
Copyright © 2024-2025 [LDC Labs](https://github.com/ldclabs).`ldclabs/ic-oss` is licensed under the MIT License. See [LICENSE](LICENSE-MIT) for the full license text.