{"id":20594411,"url":"https://github.com/fluencelabs/aqua-ipfs","last_synced_at":"2025-08-20T12:31:04.493Z","repository":{"id":38339151,"uuid":"378937445","full_name":"fluencelabs/aqua-ipfs","owner":"fluencelabs","description":"IPFS API bindings for Aqua scripts","archived":false,"fork":false,"pushed_at":"2024-09-18T09:49:27.000Z","size":3255,"stargazers_count":19,"open_issues_count":17,"forks_count":6,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-10-23T01:37:50.673Z","etag":null,"topics":["aqua","ipfs","p2p"],"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/fluencelabs.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","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":"2021-06-21T13:19:51.000Z","updated_at":"2024-09-04T18:08:39.000Z","dependencies_parsed_at":"2023-01-26T13:32:07.788Z","dependency_job_id":"f2ce1d6c-ef4c-44df-9b8b-8507b9585404","html_url":"https://github.com/fluencelabs/aqua-ipfs","commit_stats":{"total_commits":160,"total_committers":13,"mean_commits":"12.307692307692308","dds":0.73125,"last_synced_commit":"b6054cc05bfa0aec4f15aff1a95c44ca84326c22"},"previous_names":[],"tags_count":63,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fluencelabs%2Faqua-ipfs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fluencelabs%2Faqua-ipfs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fluencelabs%2Faqua-ipfs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fluencelabs%2Faqua-ipfs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fluencelabs","download_url":"https://codeload.github.com/fluencelabs/aqua-ipfs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230174960,"owners_count":18184923,"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":["aqua","ipfs","p2p"],"created_at":"2024-11-16T08:08:58.367Z","updated_at":"2024-12-19T11:11:43.328Z","avatar_url":"https://github.com/fluencelabs.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Aqua IPFS bindings\n\n[![npm](https://img.shields.io/npm/v/@fluencelabs/aqua-ipfs)](https://www.npmjs.com/package/@fluencelabs/aqua-ipfs)\n\nAqua-ipfs is a native [IPFS](https://ipfs.tech/) integration to [Aqua](https://fluence.dev/docs/aqua-book/introduction) language. It lets one call the API of an IPFS daemon, e.g., to transfer files between peers \u0026 services or to orchestrate IPFS nodes.\n\n## Quick Installation and Usage\n\nFirst, make sure you have [Fluence CLI](https://github.com/fluencelabs/fluence-cli) installed. After this, installation is as simple as:\n\n```\nfluence dep npm i @fluencelabs/aqua-ipfs\n```\n\nNext, run:\n\n```\nimport \"@fluencelabs/aqua-ipfs/ipfs-api.aqua\"\nimport \"@fluencelabs/aqua-lib/builtin.aqua\"\n\nconst PERIOD_SEC = 10\n\nfunc install_scheduled_script_from_ipfs_to_peer(from: PeerId, to: PeerId, cid: string) -\u003e ?string:\n  script_id: ?string\n\n  ipfs_maddr \u003c- get_external_api_multiaddr(from)\n  if ipfs_maddr.success:\n    get \u003c- get_from(to, cid, ipfs_maddr.multiaddr)\n    if get.success:\n      script_id \u003c- Script.add_from_vault(get.path, ?[PERIOD_SEC])\n\n  \u003c- script_id\n```\n\nTo run it in Marine REPL (mrepl), one needs to install `mrepl` via `cargo install mrepl`\nfirst. After that:\n\n```\ncd service\nmrepl\nnew Config.toml\ncall ipfs_pure set_local_api_multiaddr [\"/ip4/134.209.186.43/tcp/5001/p2p/12D3KooWEhCqQ9NBnmtSfNeXSNfhgccmH86xodkCUxZNEXab6pkw\"]\n\ncall ipfs_pure set_external_api_multiaddr [\"/ip4/134.209.186.43/tcp/5001/p2p/12D3KooWEhCqQ9NBnmtSfNeXSNfhgccmH86xodkCUxZNEXab6pkw\"]\n\ncall ipfs_pure get_from [\"QmfBRabun4FpaHV4wVXtnqtopUTro93XJHiWhNZscViCaq\", \"/ip4/134.209.186.43/tcp/5001/p2p/12D3KooWEhCqQ9NBnmtSfNeXSNfhgccmH86xodkCUxZNEXab6pkw\"]\n```\n\nYou can use `interface` and `help` inside `mrepl` to further discover what's possible.\n\nA simple example of using `aqua-ipfs` in TypeScript is available [here](./example/index.ts).\n\n\n## Documentation\n\nComprehensive documentation including API and usage examples can be found in [Aqua Book](https://fluence.dev/docs/aqua-book/libraries/aqua-ipfs).\n\n\n## Repository Structure\n\n- [**aqua**](./aqua) is Aqua API of Aqua-ipfs. See its [README](./aqua/README.md) for details.\n- [**builtin-package**](./builtin-package) Files necessary to use Aqua-ipfs on peers\n- [**example**](./example) A simple example of how to use IPFS adapter from TypeScript\n- [**local-network**](./local-network) contains Docker Compose YAML config to run a local Fluence network of 3 nodes\n- [**service**](./service) contains Rust service that implements all IPFS calls by using `ipfs` CLI mounted binary\n\n\n## Support\n\nPlease, file an [issue](https://github.com/fluencelabs/aqua-ipfs/issues) if you find a bug. You can also contact us at [Discord](https://discord.com/invite/5qSnPZKh7u) or [Telegram](https://t.me/fluence_project).  We will do our best to resolve the issue ASAP.\n\n\n## Contributing\n\nAny interested person is welcome to contribute to the project. Please, make sure you read and follow some basic [rules](./CONTRIBUTING.md).\n\n\n## License\n\nAll software code is copyright (c) Fluence Labs, Inc. under the [Apache-2.0](./LICENSE) license.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffluencelabs%2Faqua-ipfs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffluencelabs%2Faqua-ipfs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffluencelabs%2Faqua-ipfs/lists"}