v1.0.2 — Multi-backend HTTP server + FPC/Lazarus compatibility
What's new
Multi-backend HTTP server
The provider now supports all three mORMot2 HTTP server backends, selectable via THorseMormotConfig.ServerKind or compile-time defines:
ServerKind |
mORMot class | Model |
|---|---|---|
mskThreadPool (default) |
THttpServer |
Socket thread-pool |
mskAsync |
THttpAsyncServer |
Non-blocking IOCP/epoll/kqueue event loop |
mskHttpApi |
THttpApiServer |
Windows http.sys kernel-mode (Windows only) |
Switch at runtime: Cfg.ServerKind := mskAsync; THorse.ListenWithConfig(9000, Cfg);
Or at compile time: -dHORSE_MORMOT_ASYNC / -dHORSE_MORMOT_HTTPAPI.
FPC/Lazarus compatibility
- Replace
TInterlocked.*(Delphi-only RTL) withInterlockedIncrement/InterlockedDecrement/InterlockedCompareExchangefree functions — the provider now compiles under
FPC 3.2.0+. - Minimum FPC version: 3.2.0 (Lazarus 2.2+ stable) — no trunk required (unlike the CrossSocket provider).
Lazarus IDE setup docs
Full step-by-step Lazarus setup added to README and doc/building-a-mormot-provider.md: mormot2 package compile, LazUtils dependency, search paths, static blob linker path, and the
TNextProc vs TProc distinction for FPC middleware.
Breaking changes
None — existing THorse.Listen(port) calls continue to use THttpServer (thread-pool) by default.