Overview
The Horse community has created numerous third-party middleware packages that extend the framework’s capabilities. These middlewares are maintained by individual developers and organizations.Third-party middlewares may have different levels of maintenance and support. Always check the repository for the latest updates and compatibility information.
Available Middlewares
bittencourtthulio/etag
ETag header generation for caching support.- Repository: github.com/bittencourtthulio/Horse-ETag
- Delphi: ✔️ Supported
- Lazarus: ✔️ Supported
- Automatic ETag generation
- HTTP 304 Not Modified responses
- Caching optimization
bittencourtthulio/paginate
Pagination middleware for list responses.- Repository: github.com/bittencourtthulio/Horse-Paginate
- Delphi: ✔️ Supported
- Lazarus: ✔️ Supported
- Easy pagination implementation
- Configurable page size
- Pagination metadata in responses
bittencourtthulio/cachecontrol
Cache-Control header management.- Repository: github.com/bittencourtthulio/horse-cachecontrol
- Delphi: ✔️ Supported
- Lazarus: ❌ Not supported
- Cache-Control header configuration
- Max-age, no-cache, and other directives
- Route-specific caching rules
gabrielbaltazar/gbswagger
Swagger/OpenAPI documentation generation.- Repository: github.com/gabrielbaltazar/gbswagger
- Delphi: ✔️ Supported
- Lazarus: ❌ Not supported
- Automatic API documentation
- Swagger UI integration
- OpenAPI 3.0 specification
willhubner/socketIO
Socket.IO support for real-time communication.- Repository: github.com/WillHubner/Horse-SocketIO
- Delphi: ✔️ Supported
- Lazarus: ❌ Not supported
- Real-time bidirectional communication
- Socket.IO protocol support
- Event-based messaging
dliocode/ratelimit
Rate limiting middleware to prevent abuse.- Repository: github.com/dliocode/horse-ratelimit
- Delphi: ✔️ Supported
- Lazarus: ❌ Not supported
- Request rate limiting
- Configurable time windows
- Per-IP or per-user limits
- Custom response for exceeded limits
dliocode/slowdown
Progressively slow down responses after limit.- Repository: github.com/dliocode/horse-slowdown
- Delphi: ✔️ Supported
- Lazarus: ❌ Not supported
- Gradual response slowdown
- Alternative to hard rate limiting
- Configurable delay increments
giorgiobazzo/upload
File upload handling middleware.- Repository: github.com/giorgiobazzo/horse-upload
- Delphi: ✔️ Supported
- Lazarus: ❌ Not supported
- Multipart file upload handling
- File size limits
- File type validation
dliocode/query
Advanced query string parsing.- Repository: github.com/dliocode/horse-query
- Delphi: ✔️ Supported
- Lazarus: ❌ Not supported
- Enhanced query parameter parsing
- Nested object support
- Array parameter handling
CarlosHe/healthcheck
Health check endpoint for monitoring.- Repository: github.com/CarlosHe/horse-healthcheck
- Delphi: ✔️ Supported
- Lazarus: ❌ Not supported
- Standard health check endpoint
- Custom health checks
- Service status monitoring
CarlosHe/staticfiles
Static file serving middleware.- Repository: github.com/CarlosHe/horse-staticfiles
- Delphi: ✔️ Supported
- Lazarus: ❌ Not supported
- Serve static files from directory
- MIME type detection
- Caching support
CachopaWeb/horse-server-static
Alternative static file server.- Repository: github.com/CachopaWeb/horse-server-static
- Delphi: ✔️ Supported
- Lazarus: ✔️ Supported
- Static content serving
- Directory browsing (optional)
- Index file support
arvanus/horse-exception-logger
Enhanced exception logging.- Repository: github.com/arvanus/horse-exception-logger
- Delphi: ✔️ Supported
- Lazarus: ✔️ Supported
- Detailed exception logging
- Stack trace capture
- Custom log formatters
claudneysessa/Horse-CSResponsePagination
Advanced pagination with custom response format.- Repository: github.com/claudneysessa/Horse-CSResponsePagination
- Delphi: ✔️ Supported
- Lazarus: ❌ Not supported
- Standardized pagination response
- Metadata inclusion
- Navigation links
claudneysessa/Horse-XSuperObjects
XSuperObject JSON library integration.- Repository: github.com/claudneysessa/Horse-XSuperObjects
- Delphi: ✔️ Supported
- Lazarus: ❌ Not supported
- XSuperObject JSON serialization
- Alternative to Jhonson
- High performance JSON processing
andre-djsystem/horse-bearer-auth
Bearer token authentication.- Repository: github.com/andre-djsystem/horse-bearer-auth
- Delphi: ✔️ Supported
- Lazarus: ✔️ Supported
- Bearer token validation
- Custom validation callback
- Authorization header parsing
andre-djsystem/horse-manipulate-request
Request manipulation utilities.- Repository: github.com/andre-djsystem/horse-manipulate-request
- Delphi: ✔️ Supported
- Lazarus: ✔️ Supported
- Modify request data
- Request transformation
- Pre-processing utilities
andre-djsystem/horse-manipulate-response
Response manipulation utilities.- Repository: github.com/andre-djsystem/horse-manipulate-response
- Delphi: ✔️ Supported
- Lazarus: ✔️ Supported
- Modify response data
- Response transformation
- Post-processing utilities
antoniojmsjr/Horse-IPGeoLocation
IP geolocation lookup.- Repository: github.com/antoniojmsjr/Horse-IPGeoLocation
- Delphi: ✔️ Supported
- Lazarus: ❌ Not supported
- IP address geolocation
- Country/region detection
- Integration with geolocation APIs
antoniojmsjr/Horse-XMLDoc
XML document handling.- Repository: github.com/antoniojmsjr/Horse-XMLDoc
- Delphi: ✔️ Supported
- Lazarus: ❌ Not supported
- XML request/response handling
- XML serialization/deserialization
- Alternative to JSON
isaquepinheiro/horse-jsonbr
JSONBr library integration.- Repository: github.com/HashLoad/JSONBr
- Delphi: ✔️ Supported
- Lazarus: ❌ Not supported
- JSONBr serialization
- Brazilian Portuguese locale support
- Date/time formatting
IagooCesaar/Horse-JsonInterceptor
JSON request/response interception.- Repository: github.com/IagooCesaar/Horse-JsonInterceptor
- Delphi: ✔️ Supported
- Lazarus: ❌ Not supported
- Intercept JSON data
- Transform JSON payloads
- Validation and sanitization
dliocode/horse-datalogger
DataLogger integration for advanced logging.- Repository: github.com/dliocode/horse-datalogger
- Delphi: ✔️ Supported
- Lazarus: ❌ Not supported
- Advanced logging capabilities
- Multiple output providers
- Structured logging
marcobreveglieri/horse-prometheus-metrics
Prometheus metrics exporter.- Repository: github.com/marcobreveglieri/horse-prometheus-metrics
- Delphi: ✔️ Supported
- Lazarus: ❌ Not supported
- Prometheus metrics endpoint
- Request/response metrics
- Custom metrics support
weslleycapelari/horse-documentation
API documentation generator.- Repository: github.com/weslleycapelari/horse-documentation
- Delphi: ✔️ Supported
- Lazarus: ❌ Not supported
- Automatic documentation generation
- Custom templates
- Multiple output formats
Compatibility Matrix
| 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 | ✔️ | ❌ |
| andre-djsystem/horse-bearer-auth | ✔️ | ✔️ |
| andre-djsystem/horse-manipulate-request | ✔️ | ✔️ |
| andre-djsystem/horse-manipulate-response | ✔️ | ✔️ |
| antoniojmsjr/Horse-IPGeoLocation | ✔️ | ❌ |
| antoniojmsjr/Horse-XMLDoc | ✔️ | ❌ |
| isaquepinheiro/horse-jsonbr | ✔️ | ❌ |
| IagooCesaar/Horse-JsonInterceptor | ✔️ | ❌ |
| dliocode/horse-datalogger | ✔️ | ❌ |
| marcobreveglieri/horse-prometheus-metrics | ✔️ | ❌ |
| weslleycapelari/horse-documentation | ✔️ | ❌ |
Contributing Your Middleware
If you’ve created a Horse middleware and want it listed here:- Create a pull request to the Horse repository
- Add your middleware to the README.md
- Include:
- Middleware name and description
- Repository link
- Delphi/Lazarus compatibility
- Basic usage example
See Also
- Official Middlewares - Officially maintained middlewares
- THorse - Main framework API
- Callbacks - Middleware callback types
