vibe.d beta banner
get vibe.d

vibe.d 0.7.29 release

Header image
Mon, 04 Jul 2016 Brings a broad set of improvements and upgrades the code base for DMD 2.071.x. The URLRouter has also received some notable performance improvements.

Features and improvements

  • Dropped support for DMD frontend versions below 2.067.x - supports 2.067.1 up to 2.071.0 now
  • Removed the libev driver
  • Removed all deprecated symbols
  • Heavily optimized the URLRouter (>5x faster initial match graph building and around 60% faster route match performance)
  • Added CONNECT and Connection: Upgrade support to the reverse proxy module (by Georgi Dimitrov) - pull #1392
  • Added support for using an explicit network interface for outgoing TCP and HTTP connections - pull #1407
  • Cookies are now stored with their raw value, enabling handling of non-base64 encoded values (by Yannick Koechlin) - pull #1401
  • Added HyperLogLog functions to the Redis client (by Yannick Koechlin) - pull #1435
  • Added RestInterfaceSettings.httpClientSettings
  • Added HTTPClientSettings.dnsAddressFamily
  • Added TCPListener.bindAddress
  • Made @ignore, @name, @optional, @byName and @asArray serialization attributes customizable per serialization policy - pull #1438, issue #1352
  • Added HTTPStatus.unavailableForLegalReasons (by Andrew Benton) - pull #1358
  • Added support or logger implementations that can log multiple lines per log call (by Martin Nowak) - pull #1428
  • Added HTTPServerResponse.connected (by Alexander Tumin) - pull #1474
  • Added allocation free string conversion methods to NetworkAddress
  • Added diagnostics in case of connections getting closed during process shutdown (after the driver is already shut down) - issue #1452
  • Added disableDefaultSignalHandlers that can be used to avoid vibe.d registering its default signal handlers - pull #1454, issue #1333
  • Added detection of SQLite data base extensions for getMimeTypeForFile (by Stefan Koch) - pull #1456
  • The markdown module now emits XHTML compatible <br/> tags (by Stefan Schmidt) - pull #1461
  • Added RedisDatabase.srandMember overload taking a count (by Yannick Koechlin) - pull #1447
  • The HTTP client now accepts const settings
  • Removed the libevent/Win64 configuration as the libevent binaries for that platform never existed - issue #832
  • Improvements to the WebSockets module, most notably reduction of memory allocations (by Mathias Lang) - [pull #1497][issue1497]
  • Added version VibeNoOpDispatch to force removal of opDispatch for Json and Bson (by David Monagle) - pull #1526
  • Added a manual deprecation message for Json.opDispatch/Bson.opDispatch because deprecated did not have an effect

Bug fixes

  • Fixed the internal BsonObjectID counter to be initialized with a random value (by machindertech) - pull #1128
  • Fixed a possible race condition for ID assignment in the libasync driver (by Etienne Cimon) - pull #1399
  • Fixed compilation of Bson.opt for both const and non-const AAs/arrays - issue #1394
  • Fixed handling of POST methods in the REST JavaScript client for methods with no parameters - issue #1434
  • Fixed RedisDatabase.blpop and RedisList.removeFrontBlock
  • Fixed a protocol error/assertion failure when a redis reply threw an exception - pull #1416, issue #1412
  • Fixed possible assertion failures "Manually resuming taks that is already scheduled"
  • Fixed FreeBSD and NetBSD support (by Nikolay Tolstokulakov) - pull #1448
  • Fixed handling of multiple methods with @headerParam parameters with the same name (by Irenej Marc) - pull #1453
  • Fixed calling async() with an unshared delegate or with a callback that returns a const/immutable result
  • Fixed Tid to be considered safe to pass between threads (for worker tasks or vibe.core.concurrency)
  • Fixed the HTTPClient/download() to properly use TLS when redirects happen between HTTP and HTTPS (by Martin Nowak) - pull #1265
  • Fixed recognizing certain HTTP content encoding strings ("x-gzip" and "") (by Ilya Yaroshenko) - pull #1477
  • Fixed parsing IPv6 "Host" headers in the HTTP server - issue #1388, issue #1402
  • Fixed an assertion failure when using threads together with VibeIdleCollect - issue #1476
  • Fixed parsing of vibe.conf files that contain a UTF BOM - issue #1470
  • Fixed @before/@after annotations to work for template member functions
  • Fixed "Host" header handling in the HTTP server (now optional for HTTP/1.0 and responds with "bad request" if missing)
  • Fixed Json to work at CTFE (by Mihail-K) - pull #1489
  • Fixed adjustMethodStyle (used throughout vibe.web) for method names with trailing upper case characters
  • Fixed alignment of the Json type on x64, fixes possible dangling pointers due to the GC not recognizing unaligned pointers - issue #1504
  • Fixed serialization policies to work for enums and other built-in types (by Tomáš Chaloupka) - pull #1500
  • Fixed a bogus assertion error in Win32TCPConnection.tcpNoDelay and .keepAlive (by Денис Хлякин aka aka-demik) - pull #1514
  • Fixed a deadlock in TaskPipe - [issue #1501][issue1501]


Posted at 10:18:45 +0200 by Sönke Ludwig

Commenting is currently disabled for this article.