{"id":13694740,"url":"https://github.com/FireNio/firenio","last_synced_at":"2025-05-03T04:30:53.215Z","repository":{"id":37169044,"uuid":"52407251","full_name":"FireNio/firenio","owner":"FireNio","description":"🐳🐳An easy of use io framework project based on java nio\u0026epoll","archived":false,"fork":false,"pushed_at":"2024-04-19T08:04:33.000Z","size":901,"stargazers_count":349,"open_issues_count":15,"forks_count":93,"subscribers_count":37,"default_branch":"master","last_synced_at":"2024-11-27T09:17:58.604Z","etag":null,"topics":["http","java","java-nio","nio","protocol","websocket"],"latest_commit_sha":null,"homepage":"https://firenio.com(No Served)","language":"Java","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/FireNio.png","metadata":{"files":{"readme":"README-en.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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":"2016-02-24T02:14:41.000Z","updated_at":"2024-10-21T12:03:14.000Z","dependencies_parsed_at":"2024-11-12T21:43:26.977Z","dependency_job_id":null,"html_url":"https://github.com/FireNio/firenio","commit_stats":null,"previous_names":["firenio/baseio","generallycloud/baseio"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FireNio%2Ffirenio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FireNio%2Ffirenio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FireNio%2Ffirenio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FireNio%2Ffirenio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FireNio","download_url":"https://codeload.github.com/FireNio/firenio/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252144454,"owners_count":21701414,"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":["http","java","java-nio","nio","protocol","websocket"],"created_at":"2024-08-02T17:01:39.475Z","updated_at":"2025-05-03T04:30:50.557Z","avatar_url":"https://github.com/FireNio.png","language":"Java","readme":"\n# FireNio Project\n\n[![Website](https://img.shields.io/badge/website-firenio-green.svg)](https://www.firenio.com)\n[![Maven central](https://img.shields.io/badge/maven-1.3.6-green.svg)](https://search.maven.org/search?q=a:firenio-all)\n[![License](https://img.shields.io/badge/License-Apache%202.0-585ac2.svg)](https://github.com/firenio/firenio/blob/master/LICENSE.txt)\n\nFireNio is an io framework which can build network project fast, it based on java nio, it is popular with Developers because of simple and easy of use APIs and high-performance.\n\n## Features\n\n * support protocol extend, known:\n   * LengthValue protocol, for detail {firenio-test}\n   * HTTP1.1 protocol(lite), for detail: https://www.firenio.com/\n   * WebSocket protocol, for detail: https://www.firenio.com/web-socket/chat/index.html \n   * Protobase(custom) support text or binay, for detail {firenio-test}\n * easy to support reconnect (easy to support heart beat)\n * supported ssl (JdkSSL \u0026 OpenSSL)\n  * TFB load test\n   * [TFB Benchmark(Physical)](https://www.techempower.com/benchmarks/#section=data-r18\u0026hw=ph\u0026test=plaintext)\n   * [TFB Benchmark(Cloud)](https://www.techempower.com/benchmarks/#section=data-r18\u0026hw=cl\u0026test=plaintext)\n \n## Quick Start\n\n * Maven Dependency\n\n  ```xml  \n\t\u003cdependency\u003e\n\t\t\u003cgroupId\u003ecom.firenio\u003c/groupId\u003e\n\t\t\u003cartifactId\u003efirenio-all\u003c/artifactId\u003e\n\t\t\u003cversion\u003e1.3.6\u003c/version\u003e\n\t\u003c/dependency\u003e  \n  ```\n  \n * Simple Server:\n\n  ```Java\n\n    public static void main(String[] args) throws Exception {\n\n        IoEventHandle eventHandleAdaptor = new IoEventHandle() {\n\n            @Override\n            public void accept(Channel ch, Frame f) throws Exception {\n                String text = f.getStringContent();\n                f.setContent(ch.allocateWithSkipHeader(1));\n                f.write(\"yes server already accept your message:\", ch);\n                f.write(text, ch);\n                ch.writeAndFlush(f);\n            }\n        };\n        ChannelAcceptor context = new ChannelAcceptor(8300);\n        context.addChannelEventListener(new LoggerChannelOpenListener());\n        context.setIoEventHandle(eventHandleAdaptor);\n        context.addProtocolCodec(new LengthValueCodec());\n        context.bind();\n    }\n\n  ```\n\n * Simple Client:\n\n  ```Java\n    \n    public static void main(String[] args) throws Exception {\n        ChannelConnector context = new ChannelConnector(\"127.0.0.1\", 8300);\n        IoEventHandle eventHandle = new IoEventHandle() {\n            @Override\n            public void accept(Channel ch, Frame f) throws Exception {\n                System.out.println();\n                System.out.println(\"____________________\" + f.getStringContent());\n                System.out.println();\n                context.close();\n            }\n        };\n\n        context.setIoEventHandle(eventHandle);\n        context.addChannelEventListener(new LoggerChannelOpenListener());\n        context.addProtocolCodec(new LengthValueCodec());\n        Channel          ch    = context.connect(3000);\n        LengthValueFrame frame = new LengthValueFrame();\n        frame.setString(\"hello server!\", ch);\n        ch.writeAndFlush(frame);\n    }\n\n  ```\n\n###\tmore samples see project {firenio-test}\n\n## Sample at website:\n * HTTP Demo:https://www.firenio.com/index.html\n * WebSocket Chat Demo:https://www.firenio.com/web-socket/chat/index.html                                \n  (server based on firenio,client based on: https://github.com/socketio/socket.io/ )\n * WebSocket Rumpetroll Demo:https://www.firenio.com/web-socket/rumpetroll/index.html                                \n  (server based on firenio,client based on:https://github.com/danielmahal/Rumpetroll )\n\n## License\n\nFireNio is released under the [Apache License 2.0](http://www.apache.org/licenses/LICENSE-2.0).\n","funding_links":[],"categories":["Java","网络编程"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FFireNio%2Ffirenio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FFireNio%2Ffirenio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FFireNio%2Ffirenio/lists"}