{"id":13524670,"url":"https://github.com/ldclabs/ic-oss","last_synced_at":"2026-03-08T18:30:57.529Z","repository":{"id":240373497,"uuid":"798857572","full_name":"ldclabs/ic-oss","owner":"ldclabs","description":"🗂 A decentralized Object Storage Service on the Internet Computer","archived":false,"fork":false,"pushed_at":"2025-02-09T02:49:42.000Z","size":747,"stargazers_count":27,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-02-26T09:13:31.565Z","etag":null,"topics":["canister","ic","icp","oss","s3"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ldclabs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-10T16:08:36.000Z","updated_at":"2025-02-18T08:28:40.000Z","dependencies_parsed_at":"2025-03-25T03:19:40.803Z","dependency_job_id":"ea60fb7a-5aaa-4c2a-bec3-0de2783f5aee","html_url":"https://github.com/ldclabs/ic-oss","commit_stats":null,"previous_names":["ldclabs/ic-oss"],"tags_count":23,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ldclabs%2Fic-oss","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ldclabs%2Fic-oss/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ldclabs%2Fic-oss/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ldclabs%2Fic-oss/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ldclabs","download_url":"https://codeload.github.com/ldclabs/ic-oss/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246578500,"owners_count":20799839,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["canister","ic","icp","oss","s3"],"created_at":"2024-08-01T06:01:12.318Z","updated_at":"2026-03-08T18:30:57.498Z","avatar_url":"https://github.com/ldclabs.png","language":"Rust","funding_links":[],"categories":["Storage and Databases"],"sub_categories":["Candid implementations"],"readme":"# `IC-OSS`\n\n🗂 A decentralized Object Storage Service on the Internet Computer.\n\n💝 Backed by a **$25k Developer Grant** from the [DFINITY Foundation](https://dfinity.org/grants).\n\n## Overview\n\n`ic-oss` is a decentralized object storage service fully running on the Internet Computer that provides:\n- Simple and efficient file storage/retrieval\n- File directory tree structure\n- Unlimited horizontal scalability\n- Enterprise-grade access control\n\nPerfect for NFTs, chain blocks, verifiable credentials, blogs, documents, and decentralized applications.\n\n![IC-OSS](./ic-oss.webp)\n\n## Key Features\n\n- Large File Support\n  - File sharding\n  - File encryption\n  - Concurrent high-speed uploads\n  - Resumable uploads\n  - Segmented downloads\n- Advanced Organization\n  - File directory tree structure\n  - Bucket-based clustering\n- Flexible Access Control\n  - Public/private access\n  - Read/write permissions\n  - File/folder/bucket level controls\n\nCheck more details:\n- [Bucket features](https://github.com/ldclabs/ic-oss/blob/main/src/ic_oss_bucket/README.md)\n- [Cluster features](https://github.com/ldclabs/ic-oss/blob/main/src/ic_oss_cluster/README.md)\n- [Access Control](https://github.com/ldclabs/ic-oss/blob/main/docs/access_control.md)\n\n## Packages\n\n| Package                                                                          | Description                                                  |\n| :------------------------------------------------------------------------------- | :----------------------------------------------------------- |\n| [ic_oss_bucket](https://github.com/ldclabs/ic-oss/tree/main/src/ic_oss_bucket)   | Storage bucket smart contract                                |\n| [ic_oss_cluster](https://github.com/ldclabs/ic-oss/tree/main/src/ic_oss_cluster) | Cluster management smart contract                            |\n| [ic-oss-can](https://github.com/ldclabs/ic-oss/tree/main/src/ic_oss_can)         | Rust library for implementing file storage in smart contract |\n| [ic-oss-types](https://github.com/ldclabs/ic-oss/tree/main/src/ic_oss_types)     | Rust shared type definitions                                 |\n| [ic-oss](https://github.com/ldclabs/ic-oss/tree/main/src/ic_oss)                 | Rust client SDK                                              |\n| [ic_oss_ts](https://github.com/ldclabs/ic-oss/tree/main/src/ic_oss_ts)           | Typescript client SDK                                        |\n| [ic-oss-cli](https://github.com/ldclabs/ic-oss/tree/main/src/ic_oss_cli)         | Command-line tool implemented in Rust                        |\n\n## Who's using?\n\n- [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).\n\nIf you plan to use this project and have any questions, feel free to open an issue. I will address it as soon as possible.\n\n## Integration\n\n![IC-OSS Sequence](./ic-oss-sequence.webp)\n\n1. Dapp backend: Configure access control via `ic_oss_cluster`\n2. Dapp frontend: Obtain `access_token` using `ic-oss-ts` SDK\n3. Dapp frontend: Use token to interact with `ic_oss_bucket`\n\n## Examples\n\n- [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`.\n- [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`.\n- [examples/video_player](https://github.com/ldclabs/ic-oss/tree/main/examples/video_player): A video player website to test HTTP range request.\n\n## License\nCopyright © 2024-2025 [LDC Labs](https://github.com/ldclabs).\n\n`ldclabs/ic-oss` is licensed under the MIT License. See [LICENSE](LICENSE-MIT) for the full license text.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fldclabs%2Fic-oss","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fldclabs%2Fic-oss","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fldclabs%2Fic-oss/lists"}