{"id":25419308,"url":"https://github.com/horse-framework/horse-server","last_synced_at":"2025-10-31T10:31:06.297Z","repository":{"id":43858183,"uuid":"279107363","full_name":"horse-framework/horse-server","owner":"horse-framework","description":"TCP server and core modules for horse framework libraries","archived":false,"fork":false,"pushed_at":"2023-11-23T13:45:46.000Z","size":133,"stargazers_count":10,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-03T12:15:31.427Z","etag":null,"topics":["protocols","protocolserver","server","tcp"],"latest_commit_sha":null,"homepage":"","language":"C#","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/horse-framework.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}},"created_at":"2020-07-12T16:48:45.000Z","updated_at":"2024-07-27T22:00:54.000Z","dependencies_parsed_at":"2023-11-23T12:25:51.408Z","dependency_job_id":"e9c899ec-75cf-4217-92f7-d4b798ebfb79","html_url":"https://github.com/horse-framework/horse-server","commit_stats":null,"previous_names":["twino-framework/twino-server"],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horse-framework%2Fhorse-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horse-framework%2Fhorse-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horse-framework%2Fhorse-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/horse-framework%2Fhorse-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/horse-framework","download_url":"https://codeload.github.com/horse-framework/horse-server/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239179668,"owners_count":19595591,"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":["protocols","protocolserver","server","tcp"],"created_at":"2025-02-16T18:37:17.538Z","updated_at":"2025-10-31T10:31:05.972Z","avatar_url":"https://github.com/horse-framework.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Horse Server\n\n[![NuGet](https://img.shields.io/nuget/v/Horse.Server)](https://www.nuget.org/packages/Horse.Server)\n\nHorse Server is a TCP Server and includes Core modules for Horse Framework Libraries.\nOnly use Horse Server directly if you develop new protocol extension for horse server.\n\nIf you are looking for Messaging Queue Server, HTTP Server with MVC Architecture, WebSocket Server/Client or IOC Library, you can check other repositories of Horse Framework.\n\n\n### Usage\n\nHorseServer is an object, accepts TCP requests and finds the protocol which accepts the request. Here is a quick example which is used for accepting websocket connections used in horse websocket library.\n\n    public class ServerWsHandler : IProtocolConnectionHandler\u003cWsServerSocket, WebSocketMessage\u003e\n    {\n      ...\n    }\n    \n    ...\n    \n    ServerWsHandler handler = new ServerWsHandler();\n    HorseServer server = new HorseServer(ServerOptions.CreateDefault());\n    server.UseWebSockets(handler);\n    server.Start();\n    \n\nUseWebSockets is an extension method. If you need to add another protocol, you can create your own extension method that calls HorseServer's UseProtocol method. Or you can just add protocol to the server like this:\n\n    public class CustomProtocol : IHorseProtocol\n    {\n      ...\n    }\n    \n    ...\n    \n    server.UseProtocol(new CustomProtocol());\n    \n\n\n## Thanks\n\nThanks to JetBrains for open source license to use on this project.\n\n[![jetbrains](https://user-images.githubusercontent.com/21208762/90192662-10043700-ddcc-11ea-9533-c43b99801d56.png)](https://www.jetbrains.com/?from=twino-framework)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhorse-framework%2Fhorse-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhorse-framework%2Fhorse-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhorse-framework%2Fhorse-server/lists"}