Releases: camlworks/dream
Releases · camlworks/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-livereloadinto Dream asDream.livereload(#279, Thibaut Mattio). - Ability for
dream-emlto 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-emlshould not emit references to internal moduleDream_pure(#291, reported by Glenn Slotte).- Docs: replace
inria.frURLs withocaml.orgURLs (#309, @denver-s). - Fix code and commands in examples (#311, #312, #315, @renatillas, Valentin Gatien-Baron).
Miscellaneous
- Convert example
w-watchto use the newdune exec -winstead offswatch(#266, Dennis Dang). - Rename
dream.loglog 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-jsontoppx_yojson_conv0.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:falseis passed (cfacc84, prompted by Yawar Amin).
Bugs fixed
Dream.formshould accept allContent-Types that have the right prefix (#203, Yawar Amin).Dream.set_cookieshould useSameSite=Laxby default (#190, reported by Chas Emerick, Andrey Popp).- Depend on
camlp-streamsfor OCaml 5.00.0 compatibility (#210, Patrick Ferris).
Changes
- Improve
Content-LengthandTransfer-Encodinghandling (2621045).
Removals
Dream.content_lengthmiddleware (2621045).Dream.lowercase_headersmiddleware (5f50acf).Dream.versionaccessor (2162ec7).
Docs
- Catch up routers in some of the examples with Dream
alpha3(#205, Thomas Haessle). - Update docs for
Dream.form_resultconstructor`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
?debugby just using a different error handler (640a1b2). - Rename
?httpsto?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). ?csrfto 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.staticwas settingContent-Type:headers for non-existent files (#88, reported by Khoa Nguyen).- Use bigstringaf instead of
Lwt_bytesto minimize Unix dependencies (#107, Calascibetta Romain). - Limit
Dream.redirect~statusto only redirections (#130, Khoa Nguyen). Dream.redirect: don't writeLocationto the response body (b0f64df).- Restore terminal settings upon exit by
SIGINT(#151, Anton Outkine). - Don't try to ignore
SIGPIPEon Windows (#158, Manas Jayanth).
Examples
- Depend on OCaml Platform in
esy.json(#65, Dennis Dang). - Content security policy (#48, #49).
.eml.htmlusage (#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.jsons 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
sqlite3URI in SQL snippet (#80, Khoa Nguyen).
Dream 1.0.0~alpha2
Changes
- Rename
Dream.from_targettoDream.split_target(a3c1508). - Rename
Dream.from_target_pathtoDream.from_path(a3c1508). Dream.redirectnow needs arequestas 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.identitytoDream.no_middleware(42625d1). - Use library
multipart_forminstead ofmultipart-form-data(#45, Calascibetta Romain). - Rename
Dream.bigstringtoDream.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.