Skip to content

Releases: vibe-d/vibe.d

v0.10.2: Safer Redis API, REST `@viaStatus`

11 Mar 10:29
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.10.1...v0.10.2

v0.10.1: Introducting WebRPC

11 Mar 10:28
Compare
Choose a tag to compare

With this release, a new remote procedure call mechanism gets added to the vibe.web package, called WebRPC. In its initial implementation, it uses a WebSocket connection to provide bi-directional communication using the HTTP protocol. This enables peer-to-peer communication with one peer behind a NAT/firewall. Defining WebRPC interfaces is mostly compatible with the REST interface framework, so that both can be employed at the same time.

What's Changed

  • Cleanup by @s-ludwig in #2790
  • Add forward compatibility for changing HTTPServerRequest from class to struct by @s-ludwig in #2534
  • Remove workaround for ancient DUB versions and old vibe.d directory structure by @s-ludwig in #2791
  • Avoid possible GC allocations in MongoCursor.~this by @s-ludwig in #2794
  • fix viaHeader example in docs by @WebFreak001 in #2796
  • Implement a bi-directional WebSocket based RPC system by @s-ludwig in #2797
  • Enable Collection!T getters with arguments in the RPC module by @s-ludwig in #2798
  • Rest and RPC improvements by @s-ludwig in #2799
  • Avoid serializing AuthInfo and input streams in RPC interfaces by @s-ludwig in #2800
  • Mail: Implement SMTP XOAUTH2 authentication by @Geod24 in #2803

Full Changelog: v0.10.0...v0.10.1

v0.10.0: Splitting out vibe-d:http & co

11 Mar 10:28
Compare
Choose a tag to compare

This major development release brings a big change of the package structure of the low level parts of the toolkit. vibe-d:http and everything lower level have been moved to new standalone DUB packages. This will most notably allow to start integrating the HTTP/2 work in vibe-http with the rest of the code base, but also reduces friction when working on the lower level functionality, including more frequent releases.

What's Changed

Full Changelog: v0.9.8...v0.10.0

v0.9.8: More DIP1000 cleanups, enforced `@safe` REST interfaces, vibe-container

11 Mar 10:27
Compare
Choose a tag to compare

The most visible change of this release is the absence of most deprecation warnings related to scope ("DIP1000"). Also, REST interface are now required to be @safe and the new vibe-container packages provides some commonly used containers without any extra dependencies.

What's Changed

New Contributors

Full Changelog: v0.9.7...v0.9.8

v0.9.7: Clean up most scope-related deprecations

11 Mar 10:26
Compare
Choose a tag to compare

This release focuses on getting rid of most scope related deprecation warnings on modern compiler versions. There are still some left, some of which may need to be fixed in the compiler, but the overall compilation output is now pretty clean.

What's Changed

  • Force all TLS related code to be stripped for the notls configuration by @s-ludwig in #2719
  • BufferedStream optimization by @s-ludwig in #2720
  • Fix BufferedStream.write by @s-ludwig in #2721
  • Fix a slice index error when seeking past end of file, but within the last cached chunk by @s-ludwig in #2722
  • Relax requirement of string value to const(char)[] value by @nordlow in #2726
  • Corrected assert by @Tusanga in #2727
  • fix compiler error in countDocuments by @gedaiu in #2731
  • mongo updateimpl: check update, not field for updates by @benjones in #2729
  • Fix scope related deprecation warnings in vibe.data.json by @s-ludwig in #2732
  • Work on scope warnings and code cleanup by @s-ludwig in #2736
  • Fix unexplainable DUB build errors. by @s-ludwig in #2743
  • Implement CachedFileStream by @s-ludwig in #2742
  • Fix issue 2735 - explicitly disable linking against libssl/libcrypto by @s-ludwig in #2744
  • Reduce the size of CachedFileStream and destroy underlying streams on close() by @s-ludwig in #2745

New Contributors

Full Changelog: v0.9.6...v0.9.7

v0.9.6: Improved support for DIP1000, MongoDB revamp, deprecation cleanup

24 Mar 13:37
Compare
Choose a tag to compare

v0.9.6 - 2023-03-21

Features and improvements

  • Supports D frontend versions 2.090.1 to 2.102.2
  • Compatible with vibe-core 2.0.0+ - pull #2711, pull #2714, pull #2715
  • Revamped the MongoDB implementation, adding support for MongoDB 5.1+/6.0 (by Jan Jurzitza aka WebFreak001) - pull #2691, pull #2694, pull #2696, pull #2697, pull #2716
  • Removed deprecated symbols and marked symbols scheduled for deprecation as deprecated - pull #2684
    • Removed the vibe-d:core dummy module
    • runTask and related functions only accept nothrow callbacks now
    • Removed a number of deprecated enum members with uppercase first letters
    • Removed deprecated public stream constructors
  • Implemented a simple form of default schema addition in parseUserURL - pull #2700
  • Added an openssl-static configuration to vibe-d:tls to force using static libs of OpenSSL 3.x - pull #2707, pull #2709

Bug fixes

  • Fixed parsing of Markdown tables with spaces around table header separators - pull #2687
  • Fixed Bson deserialization of immutable(ubyte)[] - pull #2698
  • Fixed handling of InputStream return values in the REST interface generator - pull #2699
  • Fixed a crash at shutdown caused by failed MongoDB connections - pull #2708
  • Fixed Markdown paragraph list detection for muiti-paragraph items - pull #2718

v0.9.5: OpenSSL 3 compatibility, URL fixes, TLS fixes

18 Jul 15:31
7604eea
Compare
Choose a tag to compare

v0.9.5 - 2022-07-18

Features and improvements

  • Supports D frontend versions 2.090.1 to 2.100.1
  • Added build support for OpenSSL 3.x.x - pull #2650
  • URL handling
    • Added parseUserURL for relaxed URL parsing (by Muhammed Kadir Yücel aka mkykadir) - pull #2624, pull #2653
    • Added a range based overload of URL.toString (by Mathias Lang aka Geod24) - pull #2621
    • Added URL.normalize and URL.normalized (by Muhammed Kadir Yücel aka mkykadir) - pull #2627
    • registerCommonInternetSchema now takes a default port argument (by Muhammed Kadir Yücel aka mkykadir) - pull #2620
  • Added an overload of connectHTTP that takes a URL argument (by Mathias Lang aka Geod24) - pull #2637
  • Added HTTPClientSettings.tlsPeerName to explicitly request a specific TLS host name (by Vitali Karabitski aka vitalka200) - pull #2644

Bug fixes

  • Fixed schema comparisons to be case-insensitive (by Muhammed Kadir Yücel aka mkykadir) - pull #2620
  • Fixed URL.toString to omit the separating ":" for empty passwords (by Muhammed Kadir Yücel aka mkykadir) - pull #2622
  • Fixed LimitedInputStream to properly handle IOMode.all (by Yazan Dabain aka yazd) - issue #2575, pull #2633
  • Fixed URL.opEquals to take the port into account (by Muhammed Kadir Yücel aka mkykadir) - pull #2640
  • Fixed TLS connection issues related to Ubuntu specific OpenSSL libraries - pull #2646

Custom REST serialization, HTTP client & StreamOutputRange bugfixes

13 Apr 01:07
v0.9.3
6775f2c
Compare
Choose a tag to compare

Changes: v0.9.2...v0.9.3

Brings some important bug fixes in the HTTP client and StreamOutputRange. Also
adds custom serializer support for the REST interface generator and removes
some deprecated symbols.

Features and improvements

  • Added @resultSerializer UDA for the REST interface generator to support custom serialization for responses (by Daniel Graczer) - pull #2492, pull #2503
  • Added @serializationPolicy UDA for the REST interface generator to specify custom serialization policies (by Daniel Graczer) - pull #2505
  • The REST interface generator now allows const ref parameters (by Daniel Graczer) - pull #2495
  • Instead of @bodyParam/@headerParam/@queryParam, parameters in REST interfaces can now be annotated directly with @viaBody/@viaHeader/@viaQuery (by Mathias Lang aka Geod24) - pull #2516
  • Added support for range or callback based toString overloads in the serialization framework (by Daniel Graczer) - pull #2493, pull #2503, pull #2510
  • The REST interface client does not require a "Content-Type" header for responses with no return value anymore (by Mathias Lang aka Geod24) - pull #2521
  • Uses securely generated random numbers for digest authentication
  • createMulticastStream is now a struct and accepts non-class streams as sources - pull #2487
  • Added MulticastStreamMode, enabling a new parallel mode - pull #2519
  • More of the vibe.data.json API is nothrow - pull #2479
  • DictionaryList.byKeyValue is now a forward range - pull #2479
  • vibe.inet.path is now deprecated (import vibe.core.path instead)
  • Removed deprecated indexOfCT and DictionaryList alias this (by Mathias Lang aka Geod24) - pull #2475
  • Added HTTPServerSettings.rejectConnectionPredicate (by Daniel Graczer aka ferencdg) - pull #2496, pull #2519
  • Optimized URL.parse/isURLEncoded - pull #2524

Bug fixes

  • Fixed a wrong response in the HTTP file server when requesting the last byte of a file or zero length files - pull #2481, pull #2482
  • Fixed a file descriptor leak in the HTTP client (by Tomáš Chaloupka) - pull #2483
  • Fixed a resource leak in error cases in StreamOutputRange (by Tomáš Chaloupka) - issue #2484, pull #2485, pull #2489
  • Fixed the error message generated by failing persistent HTTP client requests (by Daniel Graczer) - pull #2499
  • Fixed an issue where the wrong response is reported when using a HTTP client read timeout (by Daniel Graczer) - issue #2506, pull #2507
  • Fixed a compile error when returning const values from REST interface methods (by Mathias Lang aka Geod24) - pull #2518

v0.9.2: Support DMD v2.094.0's `-preview=in` switch

02 Sep 06:13
Compare
Choose a tag to compare

This release adds support for the upcoming -preview=in switch,
allowing client code to enable it.

v0.9.1: Add timeout for DNS queries

21 Aug 17:56
Compare
Choose a tag to compare

With this release, timeout with resolveHost (DNS query) will work correctly.
This requires vibe-core v1.9.4 and eventcore v0.9.8.

  • Reduce supported versions to the last 10 releases - pull #2465
  • Use a timeout in the call to resolveHost - pull #2466