Horse is an Express inspired web framework for Delphi.
Designed to ease things up for fast development in a minimalist way and with high performance.
Installation is done using the boss install
command:
boss install horse
- (Optional) Install wizard
uses Horse;
begin
THorse.Get('/ping',
procedure(Req: THorseRequest; Res: THorseResponse; Next: TProc)
begin
Res.Send('pong');
end);
THorse.Listen(9000);
end.
{$MODE DELPHI}{$H+}
uses Horse;
procedure GetPing(Req: THorseRequest; Res: THorseResponse; Next: TNextProc);
begin
Res.Send('Pong');
end;
begin
THorse.Get('/ping', GetPing);
THorse.Listen(9000);
end.
For a more maintainable middleware ecosystem, we've put official middlewares into separate repositories:
Middleware | Delphi | Lazarus |
---|---|---|
horse/json | ✔️ | ✔️ |
horse/basic-auth | ✔️ | ✔️ |
horse/cors | ✔️ | ✔️ |
horse/stream | ✔️ | ✔️ |
horse/jwt | ✔️ | ✔️ |
horse/exception | ✔️ | ✔️ |
horse/logger | ✔️ | ✔️ |
horse/compression | ✔️ | ✔️ |
This is a list of middlewares that are created by the Horse community, please create a PR if you want to see yours!
Middleware | Delphi | Lazarus |
---|---|---|
bittencourtthulio/etag | ✔️ | ✔️ |
bittencourtthulio/paginate | ✔️ | ✔️ |
bittencourtthulio/cachecontrol | ✔️ | ❌ |
gabrielbaltazar/gbswagger | ✔️ | ❌ |
willhubner/socketIO | ✔️ | ❌ |
dliocode/ratelimit | ✔️ | ❌ |
dliocode/slowdown | ✔️ | ❌ |
giorgiobazzo/upload | ✔️ | ❌ |
dliocode/query | ✔️ | ❌ |
CarlosHe/healthcheck | ✔️ | ❌ |
CarlosHe/staticfiles | ✔️ | ❌ |
CachopaWeb/horse-server-static | ✔️ | ❌ |
arvanus/horse-exception-logger | ✔️ | ✔️ |
claudneysessa/Horse-CSResponsePagination | ✔️ | ❌ |
claudneysessa/Horse-XSuperObjects | ✔️ | ❌ |
Horse
works with 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.
Horse
is free and open-source software licensed under the MIT License.