Repository navigation
Releases: sinduke/Daylily
Release list
Daylily 0.1.0-alpha.4
Daylily 0.1.0-alpha.4 is an experimental SwiftPM prerelease. Swift tools minimum remains 6.3, validated with Swift 6.3.2 on macOS and Linux.
What's included
- Response-write stall deadlines and bounded server-wide observer delivery, with counters for saturated callbacks.
- Explicit nullable OpenAPI 3.1 schemas, directional compatibility checking and real generated-client HTTP regressions.
- A separate PostgreSQL commerce application with application-owned pool/lifecycle, transactional idempotent orders, readiness and recovery checks.
- Reproducible private TLS/API/SSE/database deployment trials and broader cross-file AI editing evaluations.
Upgrade notes
- Each pending response head/body/end write defaults to a 30-second deadline; use
nilto disable. Handler execution and idle gaps between SSE writes do not start this timer. - Observer delivery defaults to 64 concurrent callbacks per server. New events are dropped immediately at capacity. Applications own durable export, storage and exporter shutdown.
- Nullability and required presence are independent. General schema unions and three-state Codable PATCH values remain outside the supported subset.
- Persistence remains a separate application example; the core framework gains no database dependency. The example has no authentication or durable SSE replay.
Read the alpha.4 migration guide and capability guide.
Verification
The underlying runtime candidate 1f8e0ea5f149b09cc398d302bf37c5cd63258452 passed all 12 integration jobs and an independently audited one-hour Linux trial: 3,600.175 seconds, 223,821 successful requests, 20 expected database-outage 503s and zero unexpected traffic failures. Resource budgets and scoped cleanup passed. Release preparation changes only version metadata, documentation and the template default dependency.
Both platforms validate 74 Swift tests, 35 compatibility checks and 13 HTTP-harness regressions. Generated-client regression has 10 HTTP groups. Six actual AI edits passed first-attempt acceptance against an immutable alpha.3 snapshot; this is fixture-specific evidence, not a general success-rate claim.
This release remains alpha. The paced private deployment is not a peak-capacity benchmark or production certification; a separate 24-hour soak remains a later Beta gate. Prior release tags and historical evidence are unchanged.
.package(url: "https://github.com/sinduke/Daylily.git", exact: "0.1.0-alpha.4")Release preparation 7fc09c4289052355578f007f4ebfb97c9b686430 passed all 12 preparation jobs before publication.
Exact-tag verification passed all 14 jobs against published 0.1.0-alpha.4. Independent artifact inspection verified 12/12 release Package.resolved files and 10/10 expected dependency records on macOS/Linux at exact version alpha.4 and revision 7fc09c4289052355578f007f4ebfb97c9b686430. The release-time business smoke also passed 60.122 seconds with 3,192 successful requests, 20 expected outage 503s, zero unexpected traffic failures and zero cleanup errors.
Daylily 0.1.0-alpha.3
Daylily 0.1.0-alpha.3 publishes the operational-readiness increment after alpha.2. Public APIs remain experimental. Requires Swift 6.3+; validation uses Swift 6.3.2 on macOS and Linux.
What's new
- Configurable complete-request-header and upload-idle deadlines, with upload timing paused during framework backpressure.
- Bounded graceful shutdown: stop acceptance, close idle connections, let active responses finish, then close remaining connections at the grace deadline. Task cancellation remains the immediate force-stop path.
- Optional terminal response-transfer observation with completed/cancelled/failed outcome, flushed body-byte count, transmission duration and request context. Includes in-memory, console and SwiftLog adapters, wired through Application and ServiceLifecycle entry points.
- Reproducible two-replica Linux/Caddy API and SSE deployment trial covering disconnect, slow peers, post-header failure and rolling restart.
- Directional OpenAPI compatibility checks, actual old/new generated-client HTTP regressions and retained evidence from six fixed AI-edit trials.
Upgrade behavior
Existing normal startup calls remain source-compatible, but their defaults change: 15 seconds for a complete request head, 30 seconds for upload idle, and 10 seconds for graceful drain. Header/upload durations must be positive, or use nil to disable. Grace accepts .zero for immediate close and nil for unlimited draining.
Inbound timers do not cap handler execution or outgoing SSE lifetime. Shutdown grace bounds transport draining, not arbitrary application cleanup; application cancellation remains cooperative. Observers run asynchronously outside event loops and delivery is best effort at process exit. Flushed bytes do not prove peer consumption; applications own durable telemetry export.
See the alpha.3 migration guide, operational guide, and changelog.
Validation and limits
The operational candidate passed nine CI jobs, including 65 Swift tests and 29 compatibility checks on each platform. The local Linux/Caddy trial ran for 300 seconds with 31,382 successful requests and zero failures; the clean Linux amd64 CI trial independently passed. Six narrow, open-test AI edits passed acceptance; those results are not a general model benchmark. Release preparation cfa835792cca3cce614999ddc7adca290015a801 passed all nine CI jobs, including the expanded external operational API checks. Exact-tag validation passed all 11 jobs. Ten downloaded resolver files across macOS/Linux consumer, template, commerce, OpenAPI and contract packages all pin 0.1.0-alpha.3 to cfa835792cca3cce614999ddc7adca290015a801. Each release platform passed eight external consumer tests (including all four observer-enabled server entry points) and all four actual generated-client HTTP contract scenarios. See current release verification for the maintained record.
This remains an HTTP/1.1 alpha: no native TLS/HTTP2, public-cloud certification, durable jobs, ORM or managed authentication. The measured container trial is not an overnight soak or production capacity benchmark.
.package(url: "https://github.com/sinduke/Daylily.git", exact: "0.1.0-alpha.3")Daylily 0.1.0-alpha.2
Daylily alpha.2 adds streamed responses and SSE, cancellation-safe lifecycle recovery, explicit OpenAPI schemas/security components, generated client/server integration, optional query/header inputs, and the optional ecosystem adapters developed after alpha.1.
Requires Swift 6.3 or later; validated with Swift 6.3.2 on macOS and Linux. Existing buffered response APIs remain supported. Generated OpenAPI responses now stream by default; use an explicit collection policy when buffering is required.
The package remains experimental and HTTP/1.1-only. Request deadlines, bounded shutdown draining, and transfer observation are follow-up work, not alpha.2 features. Use .package(url: "https://github.com/sinduke/Daylily.git", exact: "0.1.0-alpha.2") to pin this release.
Daylily 0.1.0-alpha.1
First public alpha release of Daylily.
Daylily is still experimental. Public APIs may change before beta or stable release.
Highlights:
- Swift Concurrency-first runtime with declarative route DSL.
- NIO-backed HTTP/1.1 server.
- Runtime route metadata and minimal OpenAPI document generation.
- Application, group, and route middleware.
- Daylily-owned one-shot RequestBody model with streaming transport bridge.
- JSON request decoding and JSON(...) response helpers.
- Macro route/group MVP with typed @path, @query, @Header, and preferred @Body JSON body input.
- @JSONBody compatibility alias spelling for typed JSON body input.
- DaylilyTesting transport-free test helpers.
- AIDEV architecture, registry, task, and playbook documentation for AI-assisted development.
Install with SwiftPM:
.package(url: "https://github.com/sinduke/Daylily.git", from: "0.1.0-alpha.1")Target dependency:
.product(name: "Daylily", package: "Daylily")Validation:
- GitHub Actions passed on macOS and Linux for commit 5e45377.
- Local validation passed: swift build, swift test, and swift run HelloDaylily --check.
Known limitations:
- API stability is not promised yet.
- Deep Swift schema derivation is not implemented.
- Dependency injection is not implemented.
- Production auth, ORM, queue, realtime, deployment tooling, and benchmarks are future work.