vibe.d beta banner
get vibe.d

Asynchronous I/O that doesn’t get in your way, written in D

vibe.d 0.7.17 release

vibe.d 0.7.17 release

Header image
Mon, 09 Sep 2013This release fixes compiling on DMD 2.063.2 and DMD HEAD and performs a big API cleanup by removing a lot of deprecated functionality and deprecating some additional symbols. New is also a better task local storage support, a SyslogLogger class and a number of smaller additions and bug fixes.

Features and improvements

  • Compiles using DMD 2.063.2 and DMD HEAD
  • Removed a big chunk of deprecated functionality and marked declarations "scheduled for deprecation" as actually deprecated
  • Implemented TaskPipe to support piping of data between tasks/threads (usable for converting synchronous I/O to asynchronous I/O)
  • Implemented TaskLocal!T for faster and safer task local storage
  • Implemented a SyslogLogger class (by Jens K. Mueller) - pull #294
  • Implement support for transferring pre-compressed files in the HTTP file server (by Jens K. Mueller) - pull #270
  • Implemented a first version of writeFormBody (by Ben Gradham aka SerialVelocity) - pull #288
  • Implemented vibe.inet.message.decodeMessage for decoding an internet message body
  • Implemented a moving opCast for IsolatedRef!T to allow safe casting to base or derived classes and a boolean opCast to allow checking for null
  • Implemented a basic version of a WinRT based driver
  • Added localAddress and remoteAddress properties to TCPConnection
  • Added localAddress property and a connect(NetworkAddress) overload to UDPConnection
  • Added localAddress property to HTTPClientRequest
  • Added setTaskEventCallback to support task level debugging
  • Added RedisClient.rpush and RedisClient.rpushx (by Martin Mauchauffée aka moechofe) - pull #280
  • Added a write buffer size limit to ChunkedOutputStream
  • Added HTTPClientResponse.disconnect to force disconnecting the client during request handling
  • Deprecated the index() special method for the REST interface generator in favor of @path (by Михаил Страшун aka Dicebot)
  • MongoDatabase.runCommand is now publicly accessible - issue #261
  • Cookies are now cleared on the client if set to null (by Sergey Shamov) - pull #293
  • The optional do_flush argument of OutputStream.write has been removed - flushing needs to be done explicitly now

Bug fixes

  • Fixed the HTTP file server to ignore directories (so that other handlers can e.g. generate an index page) - issue #256
  • Fixed BSON/JSON (de)serialization of string type enum values
  • Fixed inversion of boolean values when converting from Json to Bson (by Nicolas Sicard aka biozic) - pull #260
  • Fixed a possible source for memory corruption by making allocators shared between threads
  • Fixed parseRFC822DateTimeString (by Nathan M. Swan) - pull #264
  • Fixed adjustMethodStyle to cope with non-ASCII characters and fixed conversion of identifiers starting with acronyms
  • Fixed preferring compression over non-chunked transfer when both are requested for HTTPServerResponse.bodyWriter (by Jens K. Mueller) - pull #268
  • Fixed assertion in HTTPClientReponse.~this (was causing an InvalidMemoryOperationError instead of the expected AssertError) - issue #273
  • Fixed the VibeDist support code to match the latest VibeDist version (still WIP)
  • Fixed validateIdent to properly check validity of the first character
  • Fixed handling of RFC2616 HTTP chunk extensions (ignoring them for now, by Nathan M. Swan) - pull #274
  • Fixed RedisClient.smembers (by Nicolas Sigard aka biozic) - pull #277
  • Fixed RedisClient.echo and RedisClient.lpop (by Martin Mauchauffée aka moechofe) - pull #279
  • Fixed FixedRingBuffer.put (used for message passing)
  • Fixed handling of out-of-memory situations in MallocAllocator
  • Fixed sending of Isolated!T values using vibe.core.concurrency
  • Fixed several concurrency related bugs in ChunkedOutputStream and Libevent2ManualEvent
  • Fixed handling of the max_lenger parameter in validateEmail (by Mike Wey) - pull #296
  • Fixed possible failed listen attempts in the example projects - issue #8, issue #249, issue #298
  • Fixed compilation of the libevent2 driver on Win64


Posted at 09:13:03 +0200 by Sönke Ludwig

Comments for the post are currently disabled.