{"id":21531947,"url":"https://github.com/matrixai/hs-multistream","last_synced_at":"2025-03-17T19:27:58.515Z","repository":{"id":151338464,"uuid":"91890830","full_name":"MatrixAI/hs-multistream","owner":"MatrixAI","description":null,"archived":false,"fork":false,"pushed_at":"2017-06-25T10:20:27.000Z","size":13,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-01-24T06:29:45.641Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MatrixAI.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":"2017-05-20T13:25:14.000Z","updated_at":"2019-01-01T21:44:34.000Z","dependencies_parsed_at":null,"dependency_job_id":"9e1100cd-26a6-4568-9b65-6e11e538f110","html_url":"https://github.com/MatrixAI/hs-multistream","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MatrixAI%2Fhs-multistream","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MatrixAI%2Fhs-multistream/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MatrixAI%2Fhs-multistream/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MatrixAI%2Fhs-multistream/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MatrixAI","download_url":"https://codeload.github.com/MatrixAI/hs-multistream/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244095995,"owners_count":20397320,"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-24T02:18:17.505Z","updated_at":"2025-03-17T19:27:58.505Z","avatar_url":"https://github.com/MatrixAI.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Haskell LibP2P - MultiStream implementation\nWIP\n\n# todo:\n - start using quick check to implement tests for handling of multistream muxer.\n - need to guarantee multistream protocols start with a '/' and have the correct format (similar to multiaddr)\n - need to implement handling of behaviour for parser exceptions inline with go-multistream\n - need to include a transport shim for haskell multistream based on go-multistream-muxer\n - A lot of the functions over MultistreamMessage are not total functions. Not sure how to deal with this at the moment, other than using a phantom type that splits either Multistream or MultistreamMessage by header or body?\n\n# notes:\n - When running multistream in ghci using stack, \n   use `stack ghci --ghci-options -XOverloadedStrings` to pull in the language extension\n\n# test suite:\n - run `stack test`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatrixai%2Fhs-multistream","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmatrixai%2Fhs-multistream","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatrixai%2Fhs-multistream/lists"}