vibe.d beta banner
get vibe.d

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

vibe.d 0.7.9 release

vibe.d 0.7.9 release

Header image
Tue, 30 Oct 2012The new release contains major improvements to the Win32 back end, as well as to the Diet template compiler. The REST interface has gotten more robust in its type handling and a new HTML form interface generator has been added. The zip file release now also includes HTML API docs.

Features and improvements

  • Implemented an automated HTML form interface generator in vibe.http.form (by Robert Klotzner aka eskimor) - issue #106
  • The REST interface now uses fully qualified names and local imports to resolve parameter/return types, making it much more robust (by Михаил Страшун aka mist) - issue #108
  • The Diet template compiler now supports includes and recursive extensions/layouts - issue #32,
  • Added support for WebSocket binary messages and closing connections (by kyubuns) - issue #118
  • Implemented a directory watcher for the Win32 driver
  • Removed vibe.textfilter.ddoc - now in
  • Cleaned up command line handling (e.g. application parameters are now separated from vibe parameters by --)
  • Dependencies in package.json can now have "~master" as the version field to take the lastest master version instead of a tagged version
  • Renamed UrlRouter.addRoute() to UrlRouter.match()
  • Moved Path into its own module (vibe.inet.path)
  • Task local storage is now handled directly by Task instead of in vibe.core.core
  • (de)serialze(To)(Json/Bson) now support type customization using (to/from)(Json/Bson) methods
  • (de)serialze(To)(Json/Bson) now strip a trailing underscore in field names, if present - allows to use keywords as field names
  • Json.opt!() is now much faster in case of non-existent fields
  • Added Bson.toJson() and Bson.fromJson() and deprecated Bson.get!Json() and cast(Json)bson
  • Implemented InputStream.readAllUtf8() - strips BOM and sanitizes or validates the input
  • Implemented copyFile() to supplement moveFile()
  • Added RandomAccessStream interface
  • Implemented a github like variant of Markdown more suitable for marking up conversation comments
  • The Markdown parser now takes flags to control its behavior
  • Made ATX header and automatic link detection in the Markdown parser stricter to avoid false detections
  • Added setPlainLogging() - avoids output of thread and task id
  • Avoiding some bogous error messages in the HTTP server (when a peer closes a connection actively)
  • Renamed the string variant of filterHtmlAllEscape() to htmlAllEscape() to match similar functions
  • connectMongoDB() will now throw if the connection is not possible - this was deferred to the first command up to now
  • By default a MongoDB connection will now have the 'safe' flag set
  • The default max cache age for the HTTP file server is now 1 day instead of 30 days
  • Implemented MemoryStream - a rendom access stream operating on a ubyte[] array.
  • The form parser in the HTTP server now enforces the maximum input line width
  • A lot of documentation improvements

Bug fixes

  • Fixed a possible endless loop in ZlibInputStream - now triggers an assertion instead; Still suffering from DMD bug 8779 - issue #56
  • Fixed handling of escaped characters in Diet templates and dissallowed use of "##" to escape "#"
  • Fixed "undefined" appearing in the stringified version of JSON arrays or objects (they are now filtered out)
  • Fixed the error message for failed connection attempts
  • Fixed a bug in PoolAllocator.realloc() that could cause a range violation or corrupted memory - issue #107
  • Fixed '//' comments in the Diet template compiler
  • Fixed and optimized readUntil - it now also obeys the byte limit, if given
  • Fixed parsing of floating-point numbers with exponents in the JSON parser
  • Fixed some HTML output syntax errors in the Markdown compiler


Posted at 23:09:16 GMT by Sönke Ludwig

Comments for the post are currently disabled.