{"id":15108556,"url":"https://github.com/hashload/horse","last_synced_at":"2026-02-06T19:31:33.364Z","repository":{"id":37502913,"uuid":"150807317","full_name":"HashLoad/horse","owner":"HashLoad","description":"Fast, opinionated, minimalist web framework for Delphi","archived":false,"fork":false,"pushed_at":"2025-04-24T11:08:40.000Z","size":131022,"stargazers_count":1241,"open_issues_count":17,"forks_count":227,"subscribers_count":114,"default_branch":"master","last_synced_at":"2025-06-27T15:38:24.828Z","etag":null,"topics":["api","delphi","embarcadero","fpc","framework","freepascal","horse","lazarus","middlewares","minimalist","rest","restful","web","webservices"],"latest_commit_sha":null,"homepage":"","language":"Pascal","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/HashLoad.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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,"zenodo":null},"funding":{"open_collective":"hashload"}},"created_at":"2018-09-29T00:25:44.000Z","updated_at":"2025-06-22T11:38:52.000Z","dependencies_parsed_at":"2024-01-01T04:03:12.158Z","dependency_job_id":"168f5485-37ff-4fe0-9de5-155acbd764f9","html_url":"https://github.com/HashLoad/horse","commit_stats":{"total_commits":449,"total_committers":48,"mean_commits":9.354166666666666,"dds":0.6948775055679287,"last_synced_commit":"c68fbe2f36610f61f4ac33efb76a51d9c33aeb7b"},"previous_names":[],"tags_count":58,"template":false,"template_full_name":null,"purl":"pkg:github/HashLoad/horse","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HashLoad%2Fhorse","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HashLoad%2Fhorse/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HashLoad%2Fhorse/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HashLoad%2Fhorse/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HashLoad","download_url":"https://codeload.github.com/HashLoad/horse/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HashLoad%2Fhorse/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263636791,"owners_count":23492304,"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":["api","delphi","embarcadero","fpc","framework","freepascal","horse","lazarus","middlewares","minimalist","rest","restful","web","webservices"],"created_at":"2024-09-25T22:03:54.962Z","updated_at":"2026-02-06T19:31:33.340Z","avatar_url":"https://github.com/HashLoad.png","language":"Pascal","readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/HashLoad/horse/blob/master/img/horse.png\"\u003e\n    \u003cimg alt=\"Horse\" height=\"150\" src=\"https://github.com/HashLoad/horse/blob/master/img/horse.png\"\u003e\n  \u003c/a\u003e  \n\u003c/p\u003e\u003cbr\u003e\n\u003cp align=\"center\"\u003e\n  \u003cb\u003eHorse\u003c/b\u003e is an \u003ca href=\"https://github.com/expressjs/express\"\u003eExpress\u003c/a\u003e inspired \u003cb\u003eweb framework\u003c/b\u003e for Delphi and Lazarus.\u003cbr\u003eDesigned to \u003cb\u003eease\u003c/b\u003e things up for \u003cb\u003efast\u003c/b\u003e development in a \u003cb\u003eminimalist\u003c/b\u003e way and with high \u003cb\u003eperformance\u003c/b\u003e.\n\u003c/p\u003e\u003cbr\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://t.me/hashload\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/telegram-join%20channel-7289DA?style=flat-square\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n## ⚙️ Installation\nInstallation is done using the [`boss install`](https://github.com/HashLoad/boss) command:\n``` sh\nboss install horse\n```\n* (Optional) Install [**wizard**](https://github.com/HashLoad/horse-wizard)\n\n## ⚡️ Quickstart Delphi\n```delphi\nuses Horse;\n\nbegin\n  THorse.Get('/ping',\n    procedure(Req: THorseRequest; Res: THorseResponse)\n    begin\n      Res.Send('pong');\n    end);\n\n  THorse.Listen(9000);\nend.\n```\n\n## ⚡️ Quickstart Lazarus\n```delphi\n{$MODE DELPHI}{$H+}\n\nuses Horse;\n\nprocedure GetPing(Req: THorseRequest; Res: THorseResponse);\nbegin\n  Res.Send('Pong');\nend;\n\nbegin\n  THorse.Get('/ping', GetPing);\n  THorse.Listen(9000);\nend. \n```\n\n## 🧬 Official Middlewares\n\nFor a more _maintainable_ middleware _ecosystem_, we've put official middlewares into separate repositories:\n\n| Middleware | Delphi | Lazarus |\n| ------------------------------------------------------------------- | -------------------- | --------------------------- |\n|  [horse/json](https://github.com/HashLoad/jhonson)                  | \u0026nbsp;\u0026nbsp;\u0026nbsp;✔️ | \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;✔️ |\n|  [horse/basic-auth](https://github.com/HashLoad/horse-basic-auth)   | \u0026nbsp;\u0026nbsp;\u0026nbsp;✔️ | \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;✔️ |\n|  [horse/cors](https://github.com/HashLoad/horse-cors)               | \u0026nbsp;\u0026nbsp;\u0026nbsp;✔️ | \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;✔️ |\n|  [horse/stream](https://github.com/HashLoad/horse-octet-stream)     | \u0026nbsp;\u0026nbsp;\u0026nbsp;✔️ | \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;✔️ |\n|  [horse/jwt](https://github.com/HashLoad/horse-jwt)                 | \u0026nbsp;\u0026nbsp;\u0026nbsp;✔️ | \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;✔️ |\n|  [horse/exception](https://github.com/HashLoad/handle-exception)    | \u0026nbsp;\u0026nbsp;\u0026nbsp;✔️ | \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;✔️ |\n|  [horse/logger](https://github.com/HashLoad/horse-logger)           | \u0026nbsp;\u0026nbsp;\u0026nbsp;✔️ | \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;✔️ |\n|  [horse/compression](https://github.com/HashLoad/horse-compression) | \u0026nbsp;\u0026nbsp;\u0026nbsp;✔️ | \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;✔️ |\n\n## 🌱 Third Party Middlewares\n\nThis is a list of middlewares that are created by the Horse community, please create a PR if you want to see yours!\n\n| Middleware | Delphi | Lazarus |\n| ---------------------------------------------------------------------------------------------------------- | -------------------- | --------------------------- |\n|  [bittencourtthulio/etag](https://github.com/bittencourtthulio/Horse-ETag)                                 | \u0026nbsp;\u0026nbsp;\u0026nbsp;✔️ | \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;✔️ |\n|  [bittencourtthulio/paginate](https://github.com/bittencourtthulio/Horse-Paginate)                         | \u0026nbsp;\u0026nbsp;\u0026nbsp;✔️ | \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;✔️ |\n|  [bittencourtthulio/cachecontrol](https://github.com/bittencourtthulio/horse-cachecontrol)                 | \u0026nbsp;\u0026nbsp;\u0026nbsp;✔️ | \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;❌ |\n|  [gabrielbaltazar/gbswagger](https://github.com/gabrielbaltazar/gbswagger)                                 | \u0026nbsp;\u0026nbsp;\u0026nbsp;✔️ | \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;❌ |\n|  [willhubner/socketIO](https://github.com/WillHubner/Horse-SocketIO)                                       | \u0026nbsp;\u0026nbsp;\u0026nbsp;✔️ | \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;❌ |\n|  [dliocode/ratelimit](https://github.com/dliocode/horse-ratelimit)                                         | \u0026nbsp;\u0026nbsp;\u0026nbsp;✔️ | \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;❌ |\n|  [dliocode/slowdown](https://github.com/dliocode/horse-slowdown)                                           | \u0026nbsp;\u0026nbsp;\u0026nbsp;✔️ | \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;❌ |\n|  [giorgiobazzo/upload](https://github.com/giorgiobazzo/horse-upload)                                       | \u0026nbsp;\u0026nbsp;\u0026nbsp;✔️ | \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;❌ |\n|  [dliocode/query](https://github.com/dliocode/horse-query)                                                 | \u0026nbsp;\u0026nbsp;\u0026nbsp;✔️ | \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;❌ |\n|  [CarlosHe/healthcheck](https://github.com/CarlosHe/horse-healthcheck)                                     | \u0026nbsp;\u0026nbsp;\u0026nbsp;✔️ | \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;❌ |\n|  [CarlosHe/staticfiles](https://github.com/CarlosHe/horse-staticfiles)                                     | \u0026nbsp;\u0026nbsp;\u0026nbsp;✔️ | \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;❌ |\n|  [CachopaWeb/horse-server-static](https://github.com/CachopaWeb/horse-server-static)                       | \u0026nbsp;\u0026nbsp;\u0026nbsp;✔️ | \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;✔️ |\n|  [arvanus/horse-exception-logger](https://github.com/arvanus/horse-exception-logger)                       | \u0026nbsp;\u0026nbsp;\u0026nbsp;✔️ | \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;✔️ |\n|  [claudneysessa/Horse-CSResponsePagination](https://github.com/claudneysessa/Horse-CSResponsePagination)   | \u0026nbsp;\u0026nbsp;\u0026nbsp;✔️ | \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;❌ |\n|  [claudneysessa/Horse-XSuperObjects](https://github.com/claudneysessa/Horse-XSuperObjects)                 | \u0026nbsp;\u0026nbsp;\u0026nbsp;✔️ | \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;❌ |\n|  [andre-djsystem/horse-bearer-auth](https://github.com/andre-djsystem/horse-bearer-auth)                   | \u0026nbsp;\u0026nbsp;\u0026nbsp;✔️ | \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;✔️ |\n|  [andre-djsystem/horse-manipulate-request](https://github.com/andre-djsystem/horse-manipulate-request)     | \u0026nbsp;\u0026nbsp;\u0026nbsp;✔️ | \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;✔️ |\n|  [andre-djsystem/horse-manipulate-response](https://github.com/andre-djsystem/horse-manipulate-response)   | \u0026nbsp;\u0026nbsp;\u0026nbsp;✔️ | \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;✔️ |\n|  [antoniojmsjr/Horse-IPGeoLocation](https://github.com/antoniojmsjr/Horse-IPGeoLocation)                   | \u0026nbsp;\u0026nbsp;\u0026nbsp;✔️ | \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;❌ |\n|  [antoniojmsjr/Horse-XMLDoc](https://github.com/antoniojmsjr/Horse-XMLDoc)                                 | \u0026nbsp;\u0026nbsp;\u0026nbsp;✔️ | \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;❌ |\n|  [isaquepinheiro/horse-jsonbr](https://github.com/HashLoad/JSONBr)                                         | \u0026nbsp;\u0026nbsp;\u0026nbsp;✔️ | \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;❌ |\n|  [IagooCesaar/Horse-JsonInterceptor](https://github.com/IagooCesaar/Horse-JsonInterceptor)                 | \u0026nbsp;\u0026nbsp;\u0026nbsp;✔️ | \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;❌ |\n|  [dliocode/horse-datalogger](https://github.com/dliocode/horse-datalogger)                                 | \u0026nbsp;\u0026nbsp;\u0026nbsp;✔️ | \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;❌ |\n|  [marcobreveglieri/horse-prometheus-metrics](https://github.com/marcobreveglieri/horse-prometheus-metrics) | \u0026nbsp;\u0026nbsp;\u0026nbsp;✔️ | \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;❌ |\n|  [weslleycapelari/horse-documentation](https://github.com/weslleycapelari/horse-documentation)             | \u0026nbsp;\u0026nbsp;\u0026nbsp;✔️ | \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;❌ |\n\n## Delphi Versions\n`Horse` works with Delphi 13 Florence, Delphi 12 Athens, Delphi 11 Alexandria, Delphi 10.4 Sydney, Delphi 10.3 Rio, Delphi 10.2 Tokyo, Delphi 10.1 Berlin, Delphi 10 Seattle, Delphi XE8 and Delphi XE7.\n\n## 💻 Code Contributors\n\n\u003ca href=\"https://github.com/Hashload/horse/graphs/contributors\"\u003e\n  \u003cimg src=\"https://contrib.rocks/image?repo=Hashload/horse\" /\u003e\n\u003c/a\u003e\n\n## ⚠️ License\n\n`Horse` is free and open-source software licensed under the [MIT License](https://github.com/HashLoad/horse/blob/master/LICENSE). \n\n## 📐 Tests\n\n![tests](https://github.com/GlerystonMatos/horse/workflows/tests/badge.svg) ![Console Coverage ](https://img.shields.io/badge/console%20coverage-45%25-blue) ![VCL Coverage ](https://img.shields.io/badge/vcl%20coverage-43%25-blue)\n","funding_links":["https://opencollective.com/hashload"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhashload%2Fhorse","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhashload%2Fhorse","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhashload%2Fhorse/lists"}