Releases: vibe-d/vibe.d
v0.10.2: Safer Redis API, REST `@viaStatus`
What's Changed
- Add a MongoCollection.find(FindOptions) overload. by @s-ludwig in #2804
- Web t9n improvements by @s-ludwig in #2805
- Add viaStatus REST interface attribute. by @s-ludwig in #2806
- Use configurations to compile without TLS support by @s-ludwig in #2810
- ci: Upgrade supported compiler & dub version by @Geod24 in #2811
- Make the Redis high-level APIs safe. by @s-ludwig in #2815
- Fix compilation error for Confirm!T parameters by @s-ludwig in #2816
Full Changelog: v0.10.1...v0.10.2
v0.10.1: Introducting WebRPC
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
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
- Prepare vibe utils removal by @s-ludwig in #2783
- Forward vibe:data to vibe-serialization by @s-ludwig in #2784
- Switch to the new vibe-stream package by @s-ludwig in #2785
- Forward :inet, :crypto, :textfilter to the new vibe-inet package by @s-ludwig in #2786
- Forward :http to vibe-http by @s-ludwig in #2787
- Remove redundant tests by @s-ludwig in #2788
- Cleanup internal dependencies by @s-ludwig in #2789
Full Changelog: v0.9.8...v0.10.0
v0.9.8: More DIP1000 cleanups, enforced `@safe` REST interfaces, vibe-container
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
- Deprecation warning fixes by @s-ludwig in #2746
- Fix deprecation warning for throwing qualified exceptions. by @s-ludwig in #2747
- Misc fixes and forward HashMap to vibe-container by @s-ludwig in #2750
- Also destroy the end callback stream in HTTPClientResponse deterministically by @s-ludwig in #2751
- Fix getMore database error on MongoDB 4.4 by @s-ludwig in #2752
- Implement SemaphoreStream. by @s-ludwig in #2754
- Fix destructor behavior of BufferedStream by @s-ludwig in #2757
- Add server setting for max HTTP request header line length. by @charlesreiss in #2755
- Make HTTPClientResponse.this nothrow by @s-ludwig in #2760
- Avoid possible array bounds error. by @s-ludwig in #2761
- Fix handling of enum parameters for REST interface clients by @s-ludwig in #2763
- MongoDB: fix countDocuments on empty collection by @WebFreak001 in #2767
- add mongodb.replaceOne overload taking ReplaceOptions by @WebFreak001 in #2764
- allow passing DB/Collection to MongoSessionStore by @WebFreak001 in #2766
- fix MongoDB CRUD not throwing on error by @WebFreak001 in #2765
- Add fromRestString unit test from #2345 by @s-ludwig in #2772
- Deprecate sanitizeUTF8 by @s-ludwig in #2773
- Fix deserialization of string based enum types by @s-ludwig in #2774
- mongodb refactor duplicate code into one function by @WebFreak001 in #2768
- Remove support for non-safe REST methods by @s-ludwig in #2771
- Deprecate vibe.internal.utilallocator and forward to vibe.container's version by @s-ludwig in #2777
- Fix a few scope related deprecation warnings by @s-ludwig in #2778
- Add MongoDB 7.0 to tests by @WebFreak001 in #2779
- MongoDB: fix cursor destructors by @WebFreak001 in #2769
- Deprecate vibe.utils.array.FixedRingBuffer by @s-ludwig in #2780
- Revive Windows CI by @s-ludwig in #2781
- Make the code forward compatible with std.experimental.allocator by @s-ludwig in #2782
New Contributors
- @charlesreiss made their first contribution in #2755
Full Changelog: v0.9.7...v0.9.8
v0.9.7: Clean up most scope-related deprecations
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
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 acceptnothrow
callbacks now- Removed a number of deprecated enum members with uppercase first letters
- Removed deprecated public stream constructors
- Removed the
- Implemented a simple form of default schema addition in
parseUserURL
- pull #2700 - Added an
openssl-static
configuration tovibe-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 ofimmutable(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
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
andURL.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
- Added an overload of
connectHTTP
that takes aURL
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 handleIOMode.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
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 astruct
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 isnothrow
- pull #2479 DictionaryList.byKeyValue
is now a forward range - pull #2479vibe.inet.path
is now deprecated (importvibe.core.path
instead)- Removed deprecated
indexOfCT
andDictionaryList
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
This release adds support for the upcoming -preview=in
switch,
allowing client code to enable it.
v0.9.1: Add timeout for DNS queries
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