vibe.d 0.8.1 release
vibe.d 0.8.1 release

Tue, 29 Aug 2017Apart from removing the old vibe-d:diet package in favor of diet-ng, this release most notably contains a number of performance improvements in the HTTP server, as well as improvements and fixes in the WebSocket code. Furthermore, initial OpenSSL 1.1.x support has been added and a few @safe related issues introduced in 0.8.0 have been fixed.
Features and improvements
- Compiles on DMD 2.071.2 up to DMD 2.076.0-rc1
- Removed vibe-d:diet sub package (superseded by diet-ng) - pull #1835
- Web framework
- Added convenience functions
status
andheader
tovibe.web.web
(by Sebastian Wilzbach) - pull #1696 - Added
vibe.web.web.determineLanguageByHeader
and improved the default language determination (by Jan Jurzitza aka WebFreak) - pull #1850 - Added
vibe.web.web.language
property to determine the detected language (by Jan Jurzitza aka WebFreak) - pull #1860 - Marked the global API functions in
vibe.web.web
as@safe
- pull #1886 - The REST interface generator avoids blindly instantiating serialization code for all parameters
- No stack trace is shown on the generated error page anymore in case of bad (query/form) parameter formatting
- Added convenience functions
- HTTP sub system
- The HTTP server now accepts a UTF-8 BOM for JSON requests (by Sebanstian Wilzbach) - pull #1799
- Most parsing features activated by
HTTPServerOption
(forHTTPServerRequest
) are now evaluated lazily instead - the corresponding options are now deprecated (by Sebastian Wilzbach):.json
/HTTPServerOption.parseJsonBody
- pull #1677.cookies
/HTTPServerOption.parseCookies
- pull #1801.form
/HTTPServerOption.parseFormBody
- pull #1801.files
/HTTPServerOption.parseMultiPartBody
- pull #1801.query
/HTTPServerOption.parseQueryString
- pull #1821.queryString
,.username
and.password
are now always filled, regardless ofHTTPServerOption.parseURL
- pull #1821
HTTPServerRequest.peer
is now computed lazily- Deprecated
HTTPServerOption.distribute
because of its non-thread-safe design - The
HTTPServerSettings
constructor now accepts a convenient string to set the bind address - pull #1810 listenHTTP
accepts the same convenience string asHTTPServerSettings
(by Sebastian Wilzbach) - pull #1816- Added
HTTPReverseProxySettings.destination
(URL
) to made UDS destinations work (by Georgi Dimitrov) - pull #1813 - Increased the network output chunk sizes from 256 to 1024 in the HTTP client/server
- WebSocket messages now produce only a single network packet of possible (header and payload sent at once) - issue #1791, pull #1792
- WebSocket API improvements (by Mathias Lang aka Geod24) - pull #1534, pull #1836
- Renamed
HTTPServerRequest.requestURL
torequestURI
- Added
HTTPClientRequest.peerCertificate
property
- Serialization
- Added deserialization support for unnamed
Tuple!(...)
(by Dentcho Bankov) - pull #1693 - Added serialization support for named
Tuple!(...)
(by Dentcho Bankov) - pull #1662
- Added deserialization support for unnamed
- Added UDP multicast properties (implemented for libevent, by Sebastian Koppe) - pull #1806
- Markdown embedded URLs are now filtered by a whitelist to avoid URL based XSS exploits - issue #1845, pull #1846
lowerPrivileges
is now marked@safe
(by Sebastian Wilzbach) - pull #1807- Improved
urlDecode
to return a slice of its input if possible - pull #1828 - Added
DictionaryList.toString
and deprecatedalias byKeyValue this
- issue #1873 - Added support for defining a compatibility version
VibeUseOpenSSL11
to build against OpenSSL 1.1.0 instead of 1.0.x (by Robert Schadek aka burner) - issue #1651, issue #1748, issue #1758, pull #1759 - Added a Meson project file analogous to the 0.7.x branch (by Matthias Klumpp aka ximion) - pull #1894
- The functions in
vibe.stream.operations
now compile with non-`@safe' streams and ranges - pull #1902 - Added
TLSCertificateInformation._x509
as an temporary means to access the raw certificate (X509*
for OpenSSL)
Bug fixes
- Fixed "SSL_read was unsuccessful with ret 0" errors in the OpenSSL TLS implementation (by machindertech) - issue #1124, pull #1395
- Fixed handling of
Nullable!T
in the web interface generator - invalid values are treated as an error now instead of as a null value - Fixed a compilation error in the Botan based TLS implementation
- Fixed an assertion in the HTTP client by using a custom allocator instead of the buggy
RegionAllocator
- Fixed sending of WebSocket messages with a payload length of 65536
- Fixed an intermittent failure at shutdown when using libasync - pull #1837
- Fixed MongoDB SASL authentication when used within
shared static this
(by Sebastian Wilzbach) - pull #1841 - Fixed authentication with default settings on modern MongoDB versions by defaulting to SCRAM-SHA-1 (by Sebastian Wilzbach) - issue #1785, issue #1843
- Fixed the WebSocket ping logic - issue #1471, pull #1848
- Fixed a cause of "dwarfeh(224) fatal error" during fatal app exit and possible an infinite loop by using
abort()
instead ofexit()
- Fixed
URLRouter.match
to accept delegate literals (by Sebastian Wilzbach) - pull #1866 - Fixed a possible range error in the libasync driver
- Fixed serialization of recursive data types to JSON (by Jan Jurzitza aka WebFreak) - issue #1855
- Fixed
MongoCursor.limit
and made the API@safe
(by Jan Jurzitza aka WebFreak) - issue #967, pull #1871 - Fixed determining the host name in
SyslogLogger
(by Jan Jurzitza aka WebFreak) - pull #1874
Download
http://code.dlang.org/packages/vibe-d/0.8.1
http://vibed.org/download?file=vibed-0.8.1.zip
https://github.com/rejectedsoftware/vibe.d/tree/4686d0e7588c7517f867cc1c31692cd1a16d85e1
Comments for the post are currently disabled.
0 comments