Skip to content

Releases: vibe-d/vibe.d

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

v0.9.0: Dependency cleanup, vibe-core only, MongoDB & OpenSSL improvements

21 Aug 16:17
v0.9.0
35079d4
Compare
Choose a tag to compare

Removes all legacy drivers (libevent, win32, libasync) and now fully relies on
vibe-core instead. MongoDB authentication and index management has been brought
up-to-date and several OpenSSL build issues have been solved.

Features and improvements

  • Removed all legacy vibe-d:core drivers (libevent, libasync, win32) - vibe-core is the only core implementation now
  • Removed the deprecated simple password hash functions and deprecated the vibe.crypto.passwordhash module (by Hiroki Noda aka kubo39) - pull #2365
  • Removed deprecated HTTPServerOption members (by Hiroki Noda aka kubo39) - pull #2413
  • OpenSSL build improvements
    • Updated OpenSSL Windows binaries to 1.1.1d - pull #2395
    • Fixed OpenSSL linking on macOS Catalina - pull #2379
    • Enabled the manual "openssl-1.1" configuration on Windows - pull #2392
    • Improved the OpenSSL version detection mechanism (by Mathias Lang aka Geod24) - pull #2401, pull #2448
  • Added an (optional) syntax to define figures to the Markdown parser - pull #2446, pull #2447
  • Added RedisClient.removeUnusedConnections (by Steven Schveighoffer) - pull #2372
  • Added a new index management API to MongoCollection that works on modern MongoDB versions (by Jan Jurzitza aka WebFreak001) - pull #2433
  • Added connectWebSocketEx to allow customizing the initial HTTP request - pull #2390
  • Added @embedNullable in order to allow optional serialization of Nullable fields (by Jan Jurzitza aka WebFreak001) - issue #1541, pull #2405
  • Added the possibility to serialize SysTime as BsonDate in the BSON serializer (by Fredrik Söderström aka tirithen) - pull #2420
  • The MongoDB driver now performs a handshake and stores server information (by Jan Jurzitza aka WebFreak001) - pull #2201
  • Improved the MongoDB authentication logic and API, as well as the documentation (by Jan Jurzitza aka WebFreak001) - pull #2422
  • Allow LF newlines in addition to CRLF in parseRFC5322Header to make it more robust outside of the standard (by Tomáš Chaloupka) - pull #2362
  • Informational replies are handled properly in the HTTP client (by Tomáš Chaloupka) - pull #2352
  • Removed unnecessary HTML attributes from ":css" and ":javascript" Diet filters (by Beyarz) - pull #2384
  • createTestHTTPServerResponse can now be configured to return only the logical response data instead of the raw protocol data - pull #2453
  • URL is now nothrow in most places - pull #2430
  • HashMap now supports key types that cannot be moved as key.move - pull #2435

Bug fixes

  • Fixed connectWebSocket to actually use the supplied settings parameter - pull #2390
  • Fixed a malformed WebSocket close packet and handles disconnect errors gracefully (by v1ne) - pull #2337
  • Fixed a possible WebSocket connection leak in case of read errors (by Benjamin Schaaf) - pull #2364
  • Fixed an infinite loop in case the Redis connection gets terminated unexpectedly (by Yazan Dabain aka yazd) - pull #2407
  • Fixed detection of half-closed connections in the HTTP client to avoid writing a request that is guaranteed to fail - pull #2421
  • Fixed a bogus compile error for web interfaces with parameterized constructors on the latest compiler versions (by Mathias Lang aka Geod24) - issue #2438, pull #2439
  • Fixed parsing of arrays of structs as parameters in the web interface generator - pull #2457
  • Fixed HTML escaping rules within Markdown emphasized text - pull #2450