{"id":20295029,"url":"https://github.com/berty/labs","last_synced_at":"2025-04-11T11:54:01.700Z","repository":{"id":37799678,"uuid":"444073210","full_name":"berty/labs","owner":"berty","description":"Berty Labs is a mobile app to explore IPFS on mobile","archived":false,"fork":false,"pushed_at":"2023-03-06T15:15:13.000Z","size":3602,"stargazers_count":15,"open_issues_count":24,"forks_count":1,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-25T08:11:46.276Z","etag":null,"topics":["ipfs","mobile"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/berty.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":".github/SECURITY.md","support":null,"governance":null},"funding":{"github":["berty"],"open_collective":"berty","custom":["https://berty.tech/contribute"]}},"created_at":"2022-01-03T13:35:47.000Z","updated_at":"2025-03-25T00:47:21.000Z","dependencies_parsed_at":"2023-02-19T08:46:16.671Z","dependency_job_id":"5760afec-c86e-4dad-ad6c-7648c52792e2","html_url":"https://github.com/berty/labs","commit_stats":{"total_commits":73,"total_committers":5,"mean_commits":14.6,"dds":0.3013698630136986,"last_synced_commit":"378625f7280364990eba1ad940c51e2744b5fa13"},"previous_names":[],"tags_count":37,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berty%2Flabs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berty%2Flabs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berty%2Flabs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berty%2Flabs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/berty","download_url":"https://codeload.github.com/berty/labs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248391290,"owners_count":21095987,"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":["ipfs","mobile"],"created_at":"2024-11-14T15:32:44.629Z","updated_at":"2025-04-11T11:54:01.682Z","avatar_url":"https://github.com/berty.png","language":"TypeScript","funding_links":["https://github.com/sponsors/berty","https://opencollective.com/berty","https://berty.tech/contribute"],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n\u003cbr\u003e\n  \u003cimg src=\"https://berty.tech/img/berty.svg\" alt=\"Yolo - The Berty Project\" height=\"300px\"\u003e\n  \u003cbr\u003e\n\u003c/h1\u003e\n\n\u003ch3 align=\"center\"\u003eBerty is a secure peer-to-peer messaging app that works with or without internet access, cellular data or trust in the network\u003c/h3\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://berty.tech\"\u003e\u003cimg alt=\"Made by Berty Technologies\" src=\"https://assets.berty.tech/files/badge--10.svg\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://crpt.fyi/berty-discord\"\u003e\u003cimg alt=\"discord\" src=\"https://img.shields.io/badge/discord-gray?logo=discord\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/berty\"\u003e\u003cimg alt=\"github\" src=\"https://img.shields.io/badge/@berty-471961?logo=github\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://twitter.com/berty\"\u003e\u003cimg alt=\"twitter\" src=\"https://img.shields.io/twitter/follow/berty?label=%40berty\u0026style=flat\u0026logo=twitter\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://pkg.go.dev/berty.tech/REPLACEME?tab=subdirectories\"\u003e\u003cimg alt=\"go.dev reference\" src=\"https://img.shields.io/badge/go.dev-reference-007d9c?logo=go\u0026logoColor=white\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/berty/REPLACEME/releases\"\u003e\u003cimg alt=\"GitHub release\" src=\"https://img.shields.io/github/v/release/berty/REPLACEME\" /\u003e\u003c/a\u003e\n\n\u003c/p\u003e\n\n\u003e TODO: short headline.\n\nTODO: short intro for non-tech. what is this repo about.\n\nTODO: optional clarification for techs, if the short intro is not enough to understand what is this repo about.\n\n## Install\n\nTODO\n\n## Getting Started\n\nSee [Modules](#modules) if you don't want to dive into the code\n\n### Troubleshooting\n\n_(please use [issues](https://github.com/berty/REPLACEME))_\n\n## Development\n\nIf you want to quickly try native mobile IPFS without writing any go, make an [HTML module](#html-module)\n\n### Architecture\n\nTODO: Explain modules architecture\n\n## Modules\u003ca id='modules'\u003e\u003c/a\u003e\n\nModules are automatically added to the home tool list in the app\n\nThey allow you to run custom Go or JavaScript and programatically access a Gomobile-IPFS backed IPFS shell on mobile very quickly\n\nYou don't need to know JavaScript to create or run a Go module and you don't need to know Go to create or run a JavaScript module\n\n### HTML\u003ca id='html-module'\u003e\u003c/a\u003e\n\nHTML modules in a nutshell:\n- Living at `rn/html-mods/`\n- Statically served at the root of a Go `http.FileServer` started automatically by the Labs bridge\n- Accessed with a `react-native-webview` pointed at the embedded static server (the `rn/src/screens/HTMLModule.tsx` screen)\n- If the build of an HTML module fails, it will be skipped and building the app will continue\n\nCreate a new Labs HTML module by running\n\n```sh\ncd rn\nmake create-module\n```\n\nAnd choosing one of `bare`, `git` or `react`\n\nIt will ask you a few questions and create the module boilerplate, every step is logged so you can understand what is going on\n\nIf you choose the `react` preset, you can use the dev-server from mobile with the `Browser` Labs tool\n\nOr:\n- Create a directory at `rn/html-mods/\u003cyour-module-name\u003e`\n- Add a Makefile at `rn/html-mods/\u003cyour-module-name\u003e/Makefile` with the first rule creating:\n  - The `rn/html-mods.bundle/\u003cyour-module-name\u003e/index.html` root site file\n  - The `rn/html-mods.bundle/\u003cyour-module-name\u003e/info.json` file containing a JSON representation of the `blmod.ModuleInfo` type\n\n### Go\n\nGo modules in a nutshell:\n- Living at `go/mod/`\n- Need to be registered in `go/bind/labs/modules.go` which can be done automatically by running `make generate`\n- Accessed with a generic UI that allows to run them, cancel runs and view their output (the `rn/src/screens/GoModule.tsx` screen)\n- If the build of a registered Go module fails, it will abort building the app\n\nCreate a new Labs Go module by running\n\n```sh\ncd rn\nmake create-module\n```\n\nAnd choosing `go` as preset\n\nOr:\n- Create a Go module at `go/mod/\u003cyour-module-name\u003e`\n- Implement the `berty.tech/labs/go/pkg/blmod.Module` interface\n- Register the module in `go/bind/labs/modules.go`\n\nTo develop a Go module faster, you can:\n- `go run ./go/cmd/daemon` to spawn a CLI Labs instance\n- `go run ./go/cmd/client` to access the modules with a CLI\n\n### Testing\n\nTODO\n\n## Contributing\n\n[![Contribute to Berty](https://assets.berty.tech/files/contribute-contribute_v2--Contribute-berty-ultra-light.gif)](https://github.com/berty/community)\n\nIf you want to help out, please see [CONTRIBUTING.md](./CONTRIBUTING.md).\n\nThis repository falls under the Berty [Code of Conduct](https://github.com/berty/community/blob/master/CODE_OF_CONDUCT.md).\n\nYou can contact us on the [`#dev-💻`](https://crpt.fyi/berty-dev-discord) channel on [discord](https://crpt.fyi/berty-discord).\n\n## License\n\nDual-licensed under [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0) and [MIT](https://opensource.org/licenses/MIT) terms.\n\n`SPDX-License-Identifier: (Apache-2.0 OR MIT)`\n\nSee the [COPYRIGHT](./COPYRIGHT) file for more details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fberty%2Flabs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fberty%2Flabs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fberty%2Flabs/lists"}