vibe.d beta banner
get vibe.d

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

vibe.d 0.7.12 release

vibe.d 0.7.12 release

Header image
Mon, 11 Feb 2013Main changes are a refactored MiongoDB client, important fixes to the HttpClient and memory alignment fixes in the custom allocators. The library and all examples are now also valid DUB* packages as a first step to remove the 'vibe' script in favor of the more powerful 'dub'.

Features and improvements

  • Big refactoring of the MongoDB interface to be more consistent with its API (by Михаил Страшун aka Dicebot) - pull #171
  • Added a range interface to MongoCursor - redo of pull #172
  • Added a dub compatible "package.json" file for vibe.d and all example projects
  • Parameters can be made optional for registerFormInterface now (by Robert Klotzner aka eskimor) - issue #156
  • The REST interface generator also supports optional parameters by defining default parameter values
  • Added Task.interrupt(), Task.join() and Task.running
  • Improved detection of needed imports in the REST interface generater (by Михаил Страшун aka Dicebot) - pull #164
  • Partially implemented zero-copy file transfers (still disabled for libevent) - issue #143
  • Added HttpRequest.contentType and contentTypeParameters to avoid errors by direct comparison with the "Content-Type" header - issue #154
  • Added a small forward compatibility fix for DUB packages ("vibe.d" is ignored as a dependency)
  • Cleaned up the function names for writing out Json objects as a string and added convenience methods (partially done in pull #166 by Joshua Niehus)
  • Renamed HttpRequest.url to HttpRequest.requestUrl and added HttpRequest.fullUrl
  • Added the possibility to write a request body in chunked transfer mode in the HttpClient
  • Added HttpServerRequest.ssl to determine if a request was sent encryted
  • Changed several interfaces to take scope delegates to avoid useless GC allocations
  • Removed the in_url parameter from Path.toString - now assumed to be true
  • SysTime and DateTime are now specially treated by the JSON/BSON serialization code
  • Refactored the Cookie interface to properly use @property (by Nick Sabalausky aka Abcissa) - pull #176
  • Added HttpRouter as an interface for UrlRouter (by Laurie Clark-Michalek aka bluepeppers) - pull #177
  • Changed HttpFileServerSettings.maxAge from long to Duration (by Nick Sabalausky aka Abcissa) - pull #178
  • Added HttpFileServerSettings.preWriteCallback (by Nick Sabalausky aka Abcissa) - pull #180

Bug fixes

  • Fixed matching of the host name in HttpServer - is case insensitive now
  • Fixed issues in ConnectionPool and HttpClient that caused InvalidMemoryOperationError and invalid multiplexed requests
  • Fixed GCAllocator and PoolAllocator to enforce proper alignment
  • Fixed passing of misaligned base pointers to free() in MallocAllocator - at least 32-bit Linux seems to choke on it - issue #157
  • Fixed listenTcp without an explicit bind address - now returns an array of listeners with one entry per IP protocol version
  • Fixed "Connection: close" hangs also for HTTP/1.0 clients - those that depended on this behavior are broken anyway - [issue #147][issue147]
  • Fixed possible invalid line markers in the mixin generated by the Diet compiler - issue #155
  • Fixed all uses of render!() in the example projects by replacing them with renderCompat!() - issue 159
  • Fixed concatenation of Path objects, where the LHS is not normalized
  • Fixed serializeToBson in conjunction with read-only fields (by Михаил Страшун aka Dicebot) - pull #168
  • Fixed a possible endless loop caused by ChunkedOutputStream due to an inconsistent redundant field
  • Fixed serializeToJson in conjunction with read-only fields (same fix as for BSON)
  • Fixed download ignoring the port property of the target URL
  • Fixed termination of Fibers by exceptions of already terminated tasks
  • Fixed propagation of HttpStatusException in the REST interface generator (by Михаил Страшун aka Dicebot) - pull #173
  • Fixed handling of multiple cookies with the same name HttpServerRequest.cookies.getAll() can now be used to query them - fixes [issue #174][issue174]
  • Fixed WebSocket.connected - issue #169
  • Fixed accepting of invalid JSON syntax - issue #161
  • Fixed use of tmpnam on Posix by replacing with mkstemps, still used on Windows - issue #137
  • Fixed ZlibInputStream.empty to be consistent with leastSize


* See the DUB package registry

Posted at 10:06:05 +0100 by Sönke Ludwig

Comments for the post are currently disabled.