vibe.d 0.7.24 release
vibe.d 0.7.24 release

Mon, 10 Aug 2015Adds DMD 2.068.0 compatibility and contains a number of additions and fixes in all parts of the library. Some notable changes are the addition of WebSocket support in the vibe.web.web module and the planned deprecation of opDispatch for Json and Bson, as well as the rename of all "SSL" symbols to "TLS". HTTP request handlers can, and should, now take the request/response parameters as "scope", which will later allow to improve performance without compromising safety.
Features and improvements
- Fixed compilation on DMD 2.068 (most fixes by Mathias Lang)
- Web interface generator (
vibe.web.web
) - Added support for
WebSocket
routes - issue #952 - Doesn't intercept
HTTPStatusException
s thrown during parameter assembly anymore - Replaced the deprecated form interface example project with a
vibe.web.web
based "web_ajax" example - Added support for the
@path
attribute on registered classes - REST interface generator (
vibe.web.rest
) - Removed support for
index()
methods (useget()
or@path("/")
) (by Mathias Lang) - pull #1010 - Deprecated the
@rootPath
attribute (use@path
instead) (by Mathias Lang) - pull #999 - Deprecated symbols that were scheduled for deprecation and removed deprecated symbols
- Added version
VibeNoDefaultArgs
to disable the built-in command line options - Renamed "SSL" to "TLS" in most places
- Scheduled
Json.opDispatch
andBson.opDispatch
for deprecation (useopIndex
instead) - Added
Bson.tryIndex
(by Marc Schütz) - pull #1032 - Added support for all standard HTTP methods (RFC) (by Szabo Bogdan) - pull #1068, pull #1082
- Added overloads for
scope
based HTTP server callbacks - These will later be used for safe, allocation-less HTTP request processing
- Always prefer this over the non-
scope
callbacks, as these will imply a performance impact in later versions - Added
vibe.core.stream.nullSink
as a convenient way to get a generic data sink stream - Added overloads of
writeFormData
andwriteFormBody
that accept ranges of key/value tuples (by Tobias Pankrath) - Added
HTTPClientResponse.switchProtocol
(by Luca Niccoli) - pull #945 listenHTTP
now returns aHTTPListener
instance that can be used to stop listening - issue #1074- Added an
AppenderResetMode
parameter toMemoryOutputStream.reset()
(by Etienne Cimon) - Changed
urlEncode
to only allocate if necessary (by Marc Schütz) - pull #1076 - Optimize multi-part form decoding for cases where "Content-Length" is given (by Etienne Cimon) - pull #1101
- Added serialization support for
std.typecons.BitFlags!T
- Removed the
HTTPRouter
interface (now just a compatibility alias toURLRouter
) (by Mathias Lang) - pull #1106 - Added
HTTPStatus.tooManyRequests
(by Jack Applegame) - pull #1103 - Added optional
code
andreason
parameters toWebSocket.close()
(by Steven Dwy) - pull #1107 - Added an optional copy+delete fallback to
moveFile()
(by Etienne Cimon and Martin Nowak) - Let
ConnectionProxyStream
work without an underlyingConnectionStream
(by Etienne Cimon) - Added a
ConnectionProxyStream
constructor taking separate input and output streams - Updated the OpenSSL Windows binaries to 1.0.1m
- Added
BigInt
support to the JSON module (by Igor Stepanov) - pull #1118 - The event loop of the win32 driver can now be stopped by sending a
WM_QUIT
message (by Денис Хлякин aka aka-demik) - pull #1120 - Marked
vibe.inet.path
aspure
and removed casts that became superfluous - Added an
InputStream
based overload ofHTTPServerResponse.writeBody
- Added all Redis modules to the
vibe.vibe
module - Added a version of
FixedRingBuffer.opApply
that supports an index (by Tomáš Chaloupka) - pull #1198
Bug fixes
- Fixed listening on IPv6 interfaces for the win32 driver
- Fixed
URL.localURI
updating the query string and anchor parts properly - issue #1044 - Fixed
Task.join()
to work outside of a running event loop - Fixed the automatic redirection in
vibe.web.web
in case of mismatching trailing slash - Fixed
MongoCollection.count()
when used with MongoDB 3.x - issue #1058 - Fixed detection of non-copyable, but movable types for
runTask
- Fixed processing of translation strings with escape sequences in
vibe.web.web
(by Andrey Zelenchuk) - pull #1067 - Fixed unnecessarily closing HTTP client connections
- Fixed using
TCPConnection.close()
with a concurrentread()
operation (libevent driver) - Fixed parsing of HTTP digest authentication headers with different whitespace padding or differing case (by Денис Хлякин aka aka-demik) - pull 1083
- Fixed parsing various HTTP request headers case insensitively
- Fixed validation of untrusted certificates without
TLSPeerValidationMode.checkTrust
forOpenSSLStream
- Fixed TLS certificate host/address validation in the SMTP client
- Fixed
@bodyParam
parameters with default value in the REST interface generator (by Mathias Lang) - issue #1125, pull #1129 - Fixed running the TLS context setup for STARTTLS SMTP connections (by Nathan Christenson) - pull #1132
- Fixed JSON serialization of
const(Json)
(by Jack Applegame) - pull #1109 - Fixed runtime error for Windows GUI apps that use the Visual Studio runtime
- Various fixes in the libasync event driver (by Etienne Cimon)
- Fixed the REST interface generator to treat
get
/post
/... methods as@path("/")
(by Mathias Lang) - pull #1135 - Fixed
URL
's internal encoding of the path string (by Igor Stepanov) - pull #1148 - Fixed decoding query parameters in the REST interface generator (by Igor Stepanov) - pull #1143
- Fixed a possible range violation when writing long HTTP access log messages (by Márcio Martins) - pull #1156
- Fixed support of typesafe variadic methods in the REST interface generator (by Mathias Lang) - issue #1144, pull #1159
- Fixed
getConfig
,setConfig
andconfigResetStat
inRedisClient
(by Henning Pohl) - pull #1158 - Fixed possible CPU hog in timer code for periodic timer events that were triggered too fast
- Fixed a possible memory leak and wrongly reported request times for HTTP connections that get terminated before finishing a response - issue #1157
- Fixed
vibe.web.web.redirect()
to work properly for relative paths with query strings - Fixed invalid JSON syntax in dub.json - issue #1172
- Fixed
LibasyncFileStream
when used withFileMode.createTrunc
(by Etienne Cimon) - pull #1176 - Fixed
deserialize
when operating on a struct/class that is annotated with@asArray
(by Colden Cullen) - pull #1182 - Fixed parsing quoted HTTP multi part form boundaries (by Mathias L. Baumann aka Marenz) - pull #1183
- Fixed
LibasyncFileStream.peek()
to always returnnull
(by Etienne Cimon) - pull #1179 - Fixed
ThreadedFile.seek
for 32-bit Windows applications (libevent driver) - issue #1189 - Fixed parsing of relative
file://
URLs - Fixed a possible
RangeError
in the JSON parser (by Takaaki Seki) - pull #1199 - Fixed a possible resource leak in
HashMap
(destructors not run) - Fixed
pipeRealtime
to always adhere to the maximum latency - Fixed deserialization of
immutable
fields (by Jack Applegame) - pull #1190
Download
http://code.dlang.org/packages/vibe-d/0.7.24
http://vibed.org/download?file=vibed-0.7.24.zip
https://github.com/rejectedsoftware/vibe.d/tree/e80dcf49badd453ebeb36f31b54206b9018a8da8
Comments for the post are currently disabled.
0 comments