{"id":20388199,"url":"https://github.com/libp2p/js-libp2p-protocol-adventure","last_synced_at":"2025-04-12T10:31:59.390Z","repository":{"id":246982020,"uuid":"824236187","full_name":"libp2p/js-libp2p-protocol-adventure","owner":"libp2p","description":"Learn how to develop custom protocols with libp2p","archived":false,"fork":false,"pushed_at":"2025-03-19T11:05:32.000Z","size":126,"stargazers_count":5,"open_issues_count":2,"forks_count":2,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-04-08T18:51:49.904Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/libp2p.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"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":"2024-07-04T16:44:42.000Z","updated_at":"2024-11-19T16:48:39.000Z","dependencies_parsed_at":"2024-07-06T02:50:07.661Z","dependency_job_id":"72b33203-340b-4ee8-b45f-fb661636e349","html_url":"https://github.com/libp2p/js-libp2p-protocol-adventure","commit_stats":null,"previous_names":["libp2p/js-libp2p-protocol-adventure"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libp2p%2Fjs-libp2p-protocol-adventure","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libp2p%2Fjs-libp2p-protocol-adventure/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libp2p%2Fjs-libp2p-protocol-adventure/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libp2p%2Fjs-libp2p-protocol-adventure/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/libp2p","download_url":"https://codeload.github.com/libp2p/js-libp2p-protocol-adventure/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248553115,"owners_count":21123381,"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":[],"created_at":"2024-11-15T03:07:51.995Z","updated_at":"2025-04-12T10:31:58.945Z","avatar_url":"https://github.com/libp2p.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# libp2p-protocol-adventure\n\n[![libp2p.io](https://img.shields.io/badge/project-libp2p-yellow.svg?style=flat-square)](http://libp2p.io/)\n[![Discuss](https://img.shields.io/discourse/https/discuss.libp2p.io/posts.svg?style=flat-square)](https://discuss.libp2p.io)\n[![codecov](https://img.shields.io/codecov/c/github/libp2p/js-libp2p-protocol-adventure.svg?style=flat-square)](https://codecov.io/gh/libp2p/js-libp2p-protocol-adventure)\n[![CI](https://img.shields.io/github/actions/workflow/status/libp2p/js-libp2p-protocol-adventure/js-test-and-release.yml?branch=main\\\u0026style=flat-square)](https://github.com/libp2p/js-libp2p-protocol-adventure/actions/workflows/js-test-and-release.yml?query=branch%3Amain)\n\n\u003e A workshop for learning about custom protocol streams in libp2p\n\n![protocol-adventure](https://raw.githubusercontent.com/libp2p/js-libp2p-protocol-adventure/master/assets/image.png)\n\n## Requirements\n\n1. Node.js install\n2. A working knowledge of [JavaScript](https://www.npmjs.com/package/javascripting), [Node.js](https://www.npmjs.com/package/learnyounode)\n3. Some time and a pot of coffee\n\n## Installation\n\n```sh\n$ npm install -g @libp2p/protocol-adventure\n```\n\nThat didn't work.\n\n```sh\n$ sudo npm install -g @libp2p/protocol-adventure\n```\n\n[Okay](https://xkcd.com/149/).\n\n## Usage\n\nAfter installing, start the workshop and follow the instructions:\n\n```sh\n$ protocol-adventure\n```\n\n## Can I use TypeScript?\n\nYes you can, but due to complications around everyone's preferred TypeScript setup, please compile your solutions yourself and verify the compiled code:\n\n```console\n$ tsc my-solution.ts\n$ protocol-adventure verify ./build/my-solution.js\n```\n\n# License\n\nLicensed under either of\n\n- Apache 2.0, ([LICENSE-APACHE](https://github.com/libp2p/js-libp2p-protocol-adventure/LICENSE-APACHE) / \u003chttp://www.apache.org/licenses/LICENSE-2.0\u003e)\n- MIT ([LICENSE-MIT](https://github.com/libp2p/js-libp2p-protocol-adventure/LICENSE-MIT) / \u003chttp://opensource.org/licenses/MIT\u003e)\n\n# Contribution\n\nUnless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flibp2p%2Fjs-libp2p-protocol-adventure","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flibp2p%2Fjs-libp2p-protocol-adventure","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flibp2p%2Fjs-libp2p-protocol-adventure/lists"}