{"id":25144584,"url":"https://github.com/fzdwx/sky","last_synced_at":"2025-04-28T11:20:57.578Z","repository":{"id":37877201,"uuid":"470199056","full_name":"fzdwx/sky","owner":"fzdwx","description":"HTTP,WebSocket ... with Netty","archived":false,"fork":false,"pushed_at":"2022-07-12T23:45:34.000Z","size":941,"stargazers_count":11,"open_issues_count":5,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-30T09:05:14.943Z","etag":null,"topics":["http","http-server","io","java","netty","netty-spring-boot-starter","spring-boot","spring-boot-websocket","tcp","websocket"],"latest_commit_sha":null,"homepage":"","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/fzdwx.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}},"created_at":"2022-03-15T14:34:32.000Z","updated_at":"2024-01-05T01:31:30.000Z","dependencies_parsed_at":"2022-08-25T20:40:51.430Z","dependency_job_id":null,"html_url":"https://github.com/fzdwx/sky","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fzdwx%2Fsky","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fzdwx%2Fsky/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fzdwx%2Fsky/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fzdwx%2Fsky/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fzdwx","download_url":"https://codeload.github.com/fzdwx/sky/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251302769,"owners_count":21567601,"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","http-server","io","java","netty","netty-spring-boot-starter","spring-boot","spring-boot-websocket","tcp","websocket"],"created_at":"2025-02-08T19:46:50.032Z","updated_at":"2025-04-28T11:20:57.561Z","avatar_url":"https://github.com/fzdwx.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Sky | Netty Based Transport Tool Kit.\n\n🚀 Use sky you can quickly create an http service or websocket service\n\n## Features\n\n- [x] Http Server\n- [x] Websocket Server\n- [ ] Spring boot starter [in development](https://github.com/fzdwx/sky/issues/11) （已经基本可用）\n- [ ] more...\n\n## Showcase\n\n```xml\n\u003cdependency\u003e\n  \u003cgroupId\u003eio.github.fzdwx\u003c/groupId\u003e\n  \u003cartifactId\u003esky-http-springboot-starter\u003c/artifactId\u003e\n  \u003cversion\u003e0.11.3.2\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n```java\nimport http.HttpServerRequest;\nimport sky.starter.UseSkyWebServer;\n        \n@SpringBootApplication\n@RestController\n@UseSkyWebServer\npublic class BurstServerApplication {\n\n    public static void main(String[] args) {\n        final ConfigurableApplicationContext run = SpringApplication.run(BurstServerApplication.class);\n    }\n\n    // normal request\n    @GetMapping(\"hello\")\n    public String hello(@RequestParam String name) {\n        return \"Hello \" + name;\n    }\n\n    // Upgrade to websocket\n    @GetMapping(\"connect\")\n    public void connect(@RequestParam String name, HttpServerRequest request) {\n        // Can be authenticated here\n        // There is no websocket connection established here, the consumption is small,\n        // and it is adapted to spring's annotations for taking parameters.\n        \n        request.upgradeToWebSocket(ws-\u003e{\n            // When a connection is successfully established with the client\n            ws.mountOpen(h -\u003e {\n                ws.send(\"Hello \" + name);\n            });\n\n            // Process the binary data sent by the client\n            ws.mountBinary(b -\u003e {\n                \n            });\n\n            // Process the text data sent by the client\n            ws.mountText(s -\u003e {\n\n            });\n\n            // For example, read idle or write idle events\n            ws.mountEvent(e -\u003e {\n\n            });\n            \n            \n            // ...\n        });\n    }\n}\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffzdwx%2Fsky","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffzdwx%2Fsky","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffzdwx%2Fsky/lists"}