{"id":15014367,"url":"https://github.com/hanabix/akka-stream-netty","last_synced_at":"2025-04-12T08:08:49.404Z","repository":{"id":36973968,"uuid":"173937886","full_name":"hanabix/akka-stream-netty","owner":"hanabix","description":"Adapt netty transport to akka-stream","archived":false,"fork":false,"pushed_at":"2025-03-30T00:43:03.000Z","size":164,"stargazers_count":4,"open_issues_count":18,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-12T08:06:33.772Z","etag":null,"topics":["akka","akka-stream","epoll","kqueue","netty","unix-domain-socket"],"latest_commit_sha":null,"homepage":"","language":"Scala","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/hanabix.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":"2019-03-05T11:57:22.000Z","updated_at":"2022-06-05T05:20:45.000Z","dependencies_parsed_at":"2024-09-30T08:00:34.447Z","dependency_job_id":null,"html_url":"https://github.com/hanabix/akka-stream-netty","commit_stats":{"total_commits":161,"total_committers":1,"mean_commits":161.0,"dds":0.0,"last_synced_commit":"02581211cb4c26ea818688b0d6cea8200d3a7b9a"},"previous_names":["zhongl/akka-stream-netty"],"tags_count":23,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hanabix%2Fakka-stream-netty","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hanabix%2Fakka-stream-netty/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hanabix%2Fakka-stream-netty/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hanabix%2Fakka-stream-netty/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hanabix","download_url":"https://codeload.github.com/hanabix/akka-stream-netty/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248537137,"owners_count":21120709,"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":["akka","akka-stream","epoll","kqueue","netty","unix-domain-socket"],"created_at":"2024-09-24T19:45:31.593Z","updated_at":"2025-04-12T08:08:49.371Z","avatar_url":"https://github.com/hanabix.png","language":"Scala","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![CI](https://github.com/hanabix/akka-stream-netty/actions/workflows/ci.yml/badge.svg)](https://github.com/hanabix/akka-stream-netty/actions/workflows/ci.yml) [![Publish](https://github.com/hanabix/akka-stream-netty/actions/workflows/sbt-release.yml/badge.svg)](https://github.com/hanabix/akka-stream-netty/actions/workflows/sbt-release.yml)[![Coveralls github](https://img.shields.io/coveralls/github/hanabix/akka-stream-netty.svg)](https://coveralls.io/github/hanabix/akka-stream-netty?branch=master) [![Codacy Badge](https://app.codacy.com/project/badge/Grade/9319321446b0455bb585530da133ff5d)](https://www.codacy.com/gh/hanabix/akka-stream-netty/dashboard?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=hanabix/akka-stream-netty\u0026amp;utm_campaign=Badge_Grade) [![Maven Central](https://img.shields.io/maven-central/v/com.github.zhongl/akka-stream-netty-all_2.13)](https://search.maven.org/artifact/com.github.zhongl/akka-stream-netty-all_2.13)\n\n**akka-stream-netty** is a scala lib to adapt [netty](https://netty.io) transport to [akka-stream](https://doc.akka.io/docs/akka/current/stream/index.html), which let us can use native transport with:\n\n  - epoll\n  - kqueue\n  - unix domain socket\n\n\u003e [alpakka-unix-domain-socket](https://github.com/akka/alpakka) would be a alternative if you only want to use unix domain socket.\n\n# Dependencies\n\n```scala\nlibraryDependencies += \"com.github.zhongl\" %% \"akka-stream-netty-all\" % \u003clatest tag\u003e\n```\n\n# Usage\n\n```scala\nimport java.net._\nimport scala.concurrent.duration._\nimport akka.actor.ActorSystem\nimport akka.stream.ActorMaterializer\nimport akka.stream.scaladsl._\nimport akka.util.ByteString\nimport io.netty.channel.socket._\nimport zhongl.stream.netty._\nimport all._\n\nimplicit val system = ActorSystem(\"demo\")\nimplicit val mat = ActorMaterializer()\nimplicit val ec = system.dispatcher\n\nNetty().bindAndHandle[ServerSocketChannel](Flow[ByteString].map(identity), new InetSocketAddress(\"localhost\", 8080)).flatMap { sb =\u003e\n  Source.repeat(ByteString(\"a\"))\n    .delay(1.seconds) \n    .via(Netty().outgoingConnection[SocketChannel](sb.localAddress))\n    .runForeach(println)\n    .flatMap(_ =\u003e sb.unbind())    \n}\n```\n\nMore usage information please see [test cases](./all/src/test/scala/zhongl/stream/netty/all).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhanabix%2Fakka-stream-netty","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhanabix%2Fakka-stream-netty","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhanabix%2Fakka-stream-netty/lists"}