Releases: aantron/dream
Releases · aantron/dream
Dream 1.0.0~alpha8
Additions and improvements
- Replace vendored http/af stack with depending on httpun from opam (#351).
- Log fd numbers for each request (#345).
Examples
- mlx (#330, Andrey Popp @andreypopp).
- dream-html (#323, Yawar Amin @yawaramin).
- Satisfy opam lint in all examples (#356, @alxtuz).
- Fix anchor in links to examples (#361, @alxtuz).
Miscellaneous
Dream 1.0.0~alpha7
Dream 1.0.0~alpha6
Additions
- Check that response header names are non-empty strings (#262, Dennis Dang).
- Update built-in GraphiQL to 2.4.1 (#271, Dennis Dang).
- Adapt to Caqti 2.0.0 (#302, Petter Urkedal).
- Merge
dream-livereload
into Dream asDream.livereload
(#279, Thibaut Mattio). - Ability for
dream-eml
to output to STDOUT (#228, Thomas Coopman). Dream.drop_session_field
(#284, requested by @rawleyfowler).- Docs: togglable light theme (#268, Tom Ekander).
- Upgrade vendored http/af stack (c86e492, 51902fc, d802548, a357921).
- WebSocket: handle ping and pong payloads (aaabf4d).
- WebSocket: allow non-FIN frames (a2cfbf4).
- Support listening on Unix domain sockets (#219, Thomas Gazagnaire).
Removals
- Remove previously deprecated values
Dream.with_client
,Dream.with_method
,Dream.with_header
,Dream.with_body
,Dream.with_stream
,Dream.write_buffer
,Dream.form_tag
,Dream.session
,Dream.put_session
,Dream.all_session_values
,Dream.put_flash
,Dream.local
,Dream.new_local
,Dream.with_local
,Dream.first
,Dream.last
, and deprecated typeDream.local
(e14bd91).
Fixes
- Respect log levels of custom sub-logs (#299, reported by Flemming Madsen).
dream-eml
should not emit references to internal moduleDream_pure
(#291, reported by Glenn Slotte).- Docs: replace
inria.fr
URLs withocaml.org
URLs (#309, @denver-s). - Fix code and commands in examples (#311, #312, #315, @renatillas, Valentin Gatien-Baron).
Miscellaneous
- Convert example
w-watch
to use the newdune exec -w
instead offswatch
(#266, Dennis Dang). - Rename
dream.log
log tag todream.logger
(d135ba6). - Deprecate
Dream.not_found
(23b7406). - Update Alpine Linux version in example (#300, Pedro Dias).
- Document significance of trailing slashes in the router (#265, @rawleyfowler).
- Adapt example
e-json
toppx_yojson_conv
0.16.0 (#287, Benjamin Thomas). - Convert examples to use opam.
Dream 1.0.0~alpha5
Additions
- Compatibility with OCaml 5 and latest versions of upstream packages mirage-crypto, gluten, http/af, h2, websocket/af, Caqti, graphql-server.
- Internal renaming of all vendored libraries (gluten, http/af, h2, websocket/af, paf) to avoid conflicts with their instances installed by opam (#250).
Miscellaneous
Dream 1.0.0~alpha4
Additions
Dream.set_status
(67e91f1).- Automatically close streams (
Dream.stream
) and WebSockets (Dream.websocket
) unless~close:false
is passed (cfacc84, prompted by Yawar Amin).
Bugs fixed
Dream.form
should accept allContent-Type
s that have the right prefix (#203, Yawar Amin).Dream.set_cookie
should useSameSite=Lax
by default (#190, reported by Chas Emerick, Andrey Popp).- Depend on
camlp-streams
for OCaml 5.00.0 compatibility (#210, Patrick Ferris).
Changes
- Improve
Content-Length
andTransfer-Encoding
handling (2621045).
Removals
Dream.content_length
middleware (2621045).Dream.lowercase_headers
middleware (5f50acf).Dream.version
accessor (2162ec7).
Docs
- Catch up routers in some of the examples with Dream
alpha3
(#205, Thomas Haessle). - Update docs for
Dream.form_result
constructor`Expired
(#206, Yawar Amin). - Fix remaining mentions of
~secret
(#207, reported by Tuomas Lukka).
Dream 1.0.0~alpha3
Major
- Complete rework of the internal I/O model, now supporting flow control, pipe-like programming, stream transformers, low-level WebSocket events, efficient WebSocket I/O, exception passing, trivial composition with client library (2075347 to ed1c949, 5cd57e1, others).
- Convert from immutable to mutable requests and conversion of the API to
t
-first style (#21). - Factor out Dream core into opam package
dream-pure
, to also be used in the client (2f40d67 to e106e6e, 037645f to 8652178, dd41df9, others). - Factor out the http/af stack and helpers directly tied to it that need to be shared with the client into opam package
dream-httpaf
(110575d, acc2efc). - Remove "global" (per-server) variables (d81b198).
- Rename "local" (per-message) variables to "fields" (5a54d5c).
- Use a middleware to set secrets (2529b9a).
- Use a middleware to set site prefix (3da5e23).
- Replace
?debug
by just using a different error handler (640a1b2). - Rename
?https
to?tls
(7320f87). - Miscellaneous renamings. Most old values are still temporarily present with attached deprecation attributes to help migrate.
Additions
- Flash message support (#62, #137, #173, Joe Thomas).
- Warning about using
sqlite:
scheme instead ofsqlite3:
(#92, Anton Outkine). - Pass the entire error object to error template calls (#162, reported by
Jean-Michel Bea). ?csrf
to skip the CSRF check inDream.form
,Dream.multipart
(#167, José Eduardo Monteiro).- Per-source log level configuration (#171, Joe Thomas).
Dream.drop_cookie
(#169, Shawn McGinty).- Simplification: assign request IDs lazily and implicitly (bb2924d).
Dream.csrf_tag
, a less obtrustive replacement forDream.form_tag
(#201, Yawar Amin).
Bugs fixed
Dream.static
was settingContent-Type:
headers for non-existent files (#88, reported by Khoa Nguyen).- Use bigstringaf instead of
Lwt_bytes
to minimize Unix dependencies (#107, Calascibetta Romain). - Limit
Dream.redirect
~status
to only redirections (#130, Khoa Nguyen). Dream.redirect
: don't writeLocation
to the response body (b0f64df).- Restore terminal settings upon exit by
SIGINT
(#151, Anton Outkine). - Don't try to ignore
SIGPIPE
on Windows (#158, Manas Jayanth).
Examples
- Depend on OCaml Platform in
esy.json
(#65, Dennis Dang). - Content security policy (#48, #49).
.eml.html
usage (#68, Ryan Moore).- WebSocket chat (#77, Thomas Coopman).
- Fix esy build of js_of_ocaml example (#103, Ulrik Strid).
- Improve the playground CSS (#109, #124, #126, #127, #128, Khoa Nguyen, @artileda).
- Dream with PostgreSQL and Docker Compose (#112, Joe Thomas).
- nginx usage (#140, Joe Thomas).
- Control flow in templates (#150, Anton Outkine).
- Adapt
esy.json
s to build on M1 (#163, Peter Mondlock). - Fly deployment (#161, Dennis Dang).
- Clarify Mirage example commands (#172, Michael Bacarella).
- Update to ReScript project names in the ReScript example (#188, Glenn Slotte).
Documentation
- Fix
sqlite3
URI in SQL snippet (#80, Khoa Nguyen).
Dream 1.0.0~alpha2
Changes
- Rename
Dream.from_target
toDream.split_target
(a3c1508). - Rename
Dream.from_target_path
toDream.from_path
(a3c1508). Dream.redirect
now needs arequest
as argument (90bba6e).- Reorder arguments of
Dream.write
,Dream.write_bigstring
,Dream.verify_csrf_token
,Dream.send
,Dream.sql
(c1ba95a). - Improve how dependencies are vendored (343e912, suggested by Antonio Nuno Monteiro).
- Rename
Dream.identity
toDream.no_middleware
(42625d1). - Use library
multipart_form
instead ofmultipart-form-data
(#45, Calascibetta Romain). - Rename
Dream.bigstring
toDream.buffer
(1386bf3).
Additions
- Example
r-graphql
(#51, Tom Ekander). - Example
w-live-reload
(#52, Thibaut Mattio). - Better error template (#53, Thibaut Mattio).
- Multi-stage Docker deployment build and opam instructions (#57, Thibaut Mattio).
Dream.to_path
(a3c1508).- Expose
Dream.from_filesystem
(#14). Dream.mime_lookup
(#14).Dream.no_route
(37a27c4).- Playground.
- Deployment instructions.
Fixes
- Work around paurkedal/ocaml-caqti#68 (385fa45, reported by Konstantin Olkhovskiy).
- Require Cstruct 6.0.0 (#60, reported by Edwin Török).
Dream 1.0.0~alpha1
Initial release.