vibe.d 0.7.30 release
vibe.d 0.7.30 release
Mon, 31 Oct 2016Following the latest DMD release, this version adds build support for DMD 2.072.0. A new authorization framework for the web interface generator has been implemented, the new diet-ng module can be used as a modern and improved replacement for the existing Diet template compiler, and as usual, a bunch of minor and major improvements and bug fixes is included.
Features and improvements
- General changes
- Compiles on DMD 2.068.2 up to 2.072.0
- Added
runApplication
as a single API entry point to properly initialize and run a vibe.d application (this will serve as the basis for slowly fading out - Started using an SDLang based DUB package recipe (upgrade to DUB 1.0.0 if you haven't already)
- Defining both,
VibeDefaultMain
andVibeCustomMain
, results in a compile-time error to help uncover hidden build issues (by John Colvin) - pull #1551 - Web/REST interface generator
- Added
vibe.web.auth
as a generic way to express authorization rules and to provide a common hook for authentication - Added
@noRoute
attribute forregisterWebInterface
to keep methods from generating a HTTP endpoint - Added
@nestedNameStyle
to choose between the classical underscore mapping and D style mapping for form parameter names inregisterWebInterface
- Serialization framework
- All hooks now get a traits struct that carries additional information, such as user defined attributes - note that this is a breaking change for any serializer implementation! - pull #1542
- Added
beginWriteDocument
andendWriteDocument
hooks - pull #1542 - Added
(begin/end)WriteDictionaryEntry
and(begin/end)WriteArrayEntry
hooks - pull #1542 - Exposed
vibe.data.serialization.DefaultPolicy
publicly - HTTP server
- Added
HTTPServerSettings.accessLogger
to enable using custom logger implementations - Added support for the "X-Forwarded-Port" header used by reverse proxies (by Mihail-K) - issue #1409, pull #1491
- Added an overload of
HTTPServerResponse.writeJsonBody
that doesn't set the response status (by Irenej Marc) - pull #1488 - Can now use the new diet-ng package in
render()
- To force using it on existing projects, simply add "diet-ng" as a dependency
- "diet-ng" is an optional dependency of vibe.d that is chosen by default - to avoid that, remove the "diet-ng" entry from dub.selections.json.
- Related issues issue #1554, issue #1555
- Added partial Unix client socket support, HTTP client support in particular (use
http+unix://...
) (by Sebastian Koppe) - pull #1547 - Removed
Json.opDispatch
andBson.opDispatch
- Added
Bson.remove
to remove elements from a BSON object - issue #345 the use ofVibeDefaultMain
) - Added support for tables in the Markdown compiler - issue #1493
- Added
MongoCollection.distinct()
- The
std.concurrency
integration code now let's the behavior ofspawn()
be configurable, defaulting now torunWorkerTask
instead of the previousrunTask
- Using
VibeNoSSL
now also disables Botan support in addition to OpenSSL (by Martin Nowak) - pull #1444 - Use a minimum protocol version of TLS 1.0 for Botan, fixes compilation on Botan 1.12.6 (by Tomáš Chaloupka) - pull #1553
- Some more
URLRouter
memory/performance optimization - Corrected the naming convention of
vibe.db.mongo.flags.IndexFlags
- issue #1571 - Added
connectRedisDB
, taking a Redis database URL FileDescriptorEvent.wait()
now returns which triggers have fired (by Jack Applegame) - [pull #1586][issue1586]
Bug fixes
- Fixed a compile error that happened when using the JavaScript REST interface generator for sub interfaces - issue #1506
- Fixed protocol violations in the WebSocket module (by Mathias Lang) - pull #1508, pull #1511
- The HTTP client now correctly appends the port in the "Host" header - issue #1507, pull #1510
- Fixed a possible null pointer error in
HTTPServerResponse.switchProtocol
- issue #1502 - Fixed parsing of indented Markdown code blocks (empty lines don't interrupt the block anymore) - issue #1527
- Fixed open TCP connections being left alive by
download()
(by Steven Dwy) - pull #1532 - Fixed the error message for invalid types in
Json.get
(by Charles Thibaut) - pull #1537 - Fixed the HTTP status code for invalid JSON in the REST interface generator (bad request instead of internal server error) (by Jacob Carlborg) - pull #1538
- Fixed yielded task execution in case no explicit event loop is used
- Fixed a memory hog/leak in the libasync driver (by Martin Nowak) - pull #1543
- Fixed the JSON module to output NaN as
null
instead ofundefined
(by John Colvin) - pull #1548, issue #1442, issue #958 - Fixed a possible deadlock in
LocalTaskSemaphore
(by Etienne Cimon) - pull #1563 - Fixed URL generation for paths with placeholders in the JavaScript REST client generator - issue #1564
- Fixed code generation errors in the JavaScript REST client generator and added
JSRestClientSettings
(by Oleg B. aka deviator) - pull #1566 - Fixed a bug in
FixedRingBuffer.removeAt
which potentially affected the task scheduler (by Tomáš Chaloupka) - pull #1572 - Fixed
validateEmail
to properly useisEmail
(which used to be broken) (by Stanislav Blinov aka radcapricorn) - issue #1580, pull #1582 - Fixed
yield()
to always return after a single event loop iteration - issue #1583 - Fixed parsing of Markdown text nested in blockquotes, code in particular
- Fixed a buffer read overflow in
OpenSSLContext
- issue #1577
Download
http://code.dlang.org/packages/vibe-d/0.7.30
http://vibed.org/download?file=vibed-0.7.30.zip
https://github.com/rejectedsoftware/vibe.d/tree/e2480da6f421108869f6007a2198134549cc522d
Comments for the post are currently disabled.
0 comments