v0.9.0: Dependency cleanup, vibe-core only, MongoDB & OpenSSL improvements
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 ofNullable
fields (by Jan Jurzitza aka WebFreak001) - issue #1541, pull #2405 - Added the possibility to serialize
SysTime
asBsonDate
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 #2453URL
is nownothrow
in most places - pull #2430HashMap
now supports key types that cannot be moved askey.move
- pull #2435
Bug fixes
- Fixed
connectWebSocket
to actually use the suppliedsettings
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