PascalWeb-RC1
PascalWeb is a Web framework for Free Pascal focused on native binaries, routing, middleware, JSON APIs, validation and backend development.
- Active · last change 10-4-2026
- ★ 1 on GitHub
README
PascalWeb 1.0.0-rc1
Release candidate. The stable core is being frozen and must still pass real Free Pascal compilation and CI before 1.0.0.
PascalWeb is a Web framework for Free Pascal focused on native binaries, routing, middleware, JSON APIs, validation and backend development.
See STABILITY.md for the compatibility boundary and RELEASING.md for the 1.0 gate.
PascalWeb v0.10 — Hardening release
v0.10 focuses on reproducible builds, tests, CI, diagnostics and release gates. Performance numbers are intentionally not claimed until the benchmark scripts are executed on real Free Pascal hosts.
Hardening toolkit
./scripts/doctor.sh
./scripts/build.sh
./scripts/test.sh
./benchmarks/http.sh http://127.0.0.1:8080/CI definitions are provided for Linux, macOS and Windows under .github/workflows/ci.yml. See docs/STABILITY.md for API maturity and docs/RELEASE_CHECKLIST.md for the 1.0 gate.
PascalWeb v0.9
PascalWeb v0.9 is the transport/production groundwork release. It keeps the v0.8 API and introduces primitives needed for long-lived HTTP connections and shared infrastructure.
Added
THttpConnection: socket ownership, full writes, detach/close semantics.THttpStream: HTTP/1.1 chunked streaming primitive for long-lived responses/SSE.- WebSocket close-frame helper and transport groundwork for socket handoff.
TRedisClient: minimal RESP client implementingICache(GET,SET, TTL,DEL,EXISTS,PING).TRedisJobQueue: durable-queue adapter surface reserved for Redis list operations.- Production example using Redis through the same
ICacheinterface as memory cache.
Important status
v0.9 deliberately separates implemented primitives from the final server integration. THttpConnection, chunked streaming, and Redis cache are implemented. Full keep-alive request pipelining, WebSocket socket handoff from THttpServer, and Redis-backed BRPOP/LPUSH workers are still marked experimental/incomplete and must be finished and load-tested before 1.0.
This repository has not been compiled in the generation environment because FPC is unavailable there. Compile and run the tests with Free Pascal before production use.
Redis
var Cache: ICache;
Cache := TRedisClient.Create('127.0.0.1', 6379);
Cache.Put('user:42', '{"name":"Samuel"}', 60);
Writeln(Cache.Get('user:42'));Streaming primitive
Stream := THttpStream.Create(Connection);
Stream.Start('text/event-stream; charset=utf-8');
Stream.Write(TSSE.Event('{"status":"ready"}', 'status'));
Stream.Close;Road to 1.0
- Integrate connection ownership directly into
TRequest/TResponse. - Keep-alive loop with request boundary parsing and idle timeout.
- WebSocket receive parser + ping/pong + graceful close.
- Redis
LPUSH/BRPOP, retries, failed-job queue and worker process. - Concurrency/load tests, protocol tests and FPC CI on Linux/macOS/Windows.

