vibe.d 0.7.20 release
vibe.d 0.7.20 release

Tue, 03 Jun 2014The "vibe.web.web" web interface generator module has been extended with some important features, making it a full replacement (and more) of the old registerFormInterface() functionality. Other important changes include the use of strong TLS ciphers out of the box, as well as a heavily optimized URLRouter implementation and support for compile-time localization of Diet templates.
Features and improvements
- Web interface generator and Diet template system
- Added
vibe.web.web.terminateSession()
andredirect()
- Added support for
struct
and array parameters, as well asNullable!T
invibe.web.web
- Added the
@errorDisplay
annotation tovibe.web.web
to enable automatic exception display using an existing request handler - Added built-in, compile-time, gettext compatible localization support for Diet templates using the
tag& text
syntax
- Added
- HTTP router
- Implemented a new match tree based routing algorithm for
URLRouter
, resulting in great speedups for complex routing setups - Added
URLRouter.prefix
to configure a prefix to append to every route - The
HTTPRouter
router interface is scheduled for removal
- Implemented a new match tree based routing algorithm for
- Serialization system
- Added
@asArray
to force serialization of composite types as arrays instead of dictionaries - Added support for using a pre-allocated buffer for
serializeToBson
- Added support for custom serialization representations of user defined types using
toRepresentation
/fromRepresentation
methods - issue #618 - Made
DictionaryList
serializable as an array by addingtoRepresentation
/fromRepresentation
- issue #621
- Added
- SSL/TLS
- Using only strong ciphers by default for SSL server contexts
- Added out-of-the box support for perfect forward secrecy (PFS) (by Martin Nowak) - pull #630
- Changed the default from
SSLVersion.tls1
(fixed TLS 1.0) toSSLVersion.any
(SSL 3 and up, including TLS 1.1 and TLS 1.2) - Added
SMTPClientSettings.sslContextSetup
to enable customization of the SSL context (e.g. adding trusted certificates) - Upgraded the Windows OpenSSL binaries to 1.0.1g
- Performance tuning
- Added
HTTPServerOption.errorStackTraces
to make costly stack trace generation optional - Arguments to the logging functions are now evaluated lazily to avoid computations when messages are not actually logged
- Added support for direct de-serialization of MongoDB query results
- Reduced memory allocations in the HTTP logger module
- Heavily reduced the number of memory allocations happening in the MongoDB driver - see issue #633
- Added
- General
- Removed deprecated symbols and deprecated symbols that were scheduled for deprecation
- Added
runWorkerTaskH
to run a worker task and return its handle in one step (by Luca Niccoli aka lultimouomo) - pull #601 - Added
createTestHTTPServerRequest
andcreateTestHTTPServerResponse
to support writing unit tests - Added
vibe.core.file.readFile
,readFileUTF8
,writeFile
andwriteFileUTF8
- Added a limited overload of
RedisDatabase.zrevRangeByScore
and fix the type of thestart
/end
parameters (by Jens K. Mueller) - pull #637 - Added
TCPListenOptions.disableAutoClose
to make incoming TCP connections independent of the initial handler task - Added
vibe.core.concurrency.thisTid
as an alias toTask.getThis()
for improved API compatibility tostd.concurrency
- Added an overload of
UDPConnection.recv
taking a timeout parameter - issue #540 - Added
toString
toHTTPRequest
andHTTPResponse
for convenient logging - Added
MarkdownSettings
with additional support of setting the base heading level of the generated HTML - Added
TCPConnection.keepAlive
to set theSO_KEEPALIVE
option - issue #622 Error
derived exceptions are not caught anymore (use-version=VibeDebugCatchAll
to get the old unsafe behavior)- Annotated some basic modules with
@safe
/@trusted
/pure
- Extended
ProxyStream
to optionally take distinct streams for input and output - Replaced all remaining uses of
renderCompat
withrender
- Removed unused variables and made
Bson.toString
const
(thanks to Brian Schott aka Hackerpilot) - issue #659
Bug fixes
- Fixed the order of events reported by
setTaskEventCallback
when new tasks are started within an existing task - Fixed HTTP multi-file uploads by changing
HTTPServerRequest.files
to aDictionaryList
- Fixed
@byName
to work for serializing (associative) arrays of enums - Fixed SSL based SMTP connections (by Martin Nowak) - pull #609
- Fixed Diet text blocks (
tag.
style) to properly remove the input file indentation - issue #614 - Fixed
isStronglyIsolated!T
to work for interface types - Fixed
filterURLEncode
to encode certain special characters (such as "{") - issue #632 - Fixed a crash when accessing vibe.d event functionality from within
shared static ~this
- Fixed
Task.join
andTask.interrupt
to work when called from outside of the event loop (e.g. whenprocessEvents
is used instead ofrunEventLoop
) - issue #443 - Fixed serialization of
const
class instances (by Jack Applegame) - issue #653 - Fixed compilation of
renderCompat!()
on GDC (invalid use ofva_list
/void*
) - Fixed handling of paths with empty path entries (e.g. "/some///path") - issue #410
- Fixed a crash caused by
GCAllocator
-GC.extend
is now used instead ofGC.realloc
to sidestep the issue - issue #470 - Fixed rendering of Markdown links with styled captions
- Fixed
Path.relativeTo
step over devices for UNC paths on Windows - Fixed compilation on 2.064 frontend based GDC - issue #647
- Fixed output of empty lines in "tag." style Diet template text blocks
Download
http://code.dlang.org/packages/vibe-d/0.7.20
Comments for the post are currently disabled.
0 comments