vibe.d 0.7.14 release
vibe.d 0.7.14 release

Fri, 22 Mar 2013A lot has been improved on the performance and multi-threading front. The HTTP server benchmark jumped from around 17k req/s up to 48k req/s on a certain quad-core test system and >10k connections can now be handled at the same time (on 64-bit systems due to virtual memory requirements).
Features and improvements
- Performance tuning for the HTTP server and client
- Implemented distributed listening and HTTP server request processing (using worker threads to accept connections)
- Stable memory usage for HTTP client and server (tested for 50 million requests)
- Implemented new
TaskMutex
andTaskCondition
classes deriving from Druntime'sMutex
andCondition
for drop-in replacement - Added a simplified version of the
std.concurrency
API that works with vibe.d's tasks (temporary drop-in replacement) - Added support for customizing the HTTP method and path using UDAs in the REST interface generator (by Михаил Страшун aka Dicebot) - pull #189
vibe.core.mutex
andvibe.core.signal
have been deprecated- Added support for WebDAV specific HTTP methods - see also issue #109
- Compiles on DMD 2.061/2.062 in unit test mode
- Added
Json.remove()
for JSON objects - Added
Isolated!T
in preparation of a fully thread-safe API - The package description now exposes a proper set of configurations
- VPM uses the new download URL schema instead of relying on a
"downloadUrl"
field in the package description to stay forward compatible with DUB - The default order to listen is now IPv6 and then IPv4 to avoid the IPv4 listener blocking the IPv6 one on certain systems
- Added
HttpServerSettings.disableDistHost
to forcelistenHttp
to listen immediately, even during initialization - Added
WebSocket.receiveBinary
andWebSocket.receiveText
- issue #182 - Added
HttpServerResponse.writeRawBody
andHttpClientResponse.readRwaBody
to allow for verbatim forwarding - ".gz" and ".tgz" are now recognized as compressed formats and are not transferred with a compressed "Content-Encoding"
- Added a pure scoped callback based version of
requestHttp
to allow GC-less operation and also automatic pipelining of requests in the future
Bug fixes
- Fixed some possible crashes and memory leaks in the
HttpClient
- Fixed the
HttpRouter
interface to derive fromHttpServerRequestHandler
- Fixed parsing of version ranges in the deprecated VPM
- Fixed some examples by added a
VibeCustomMain
version to their package.json - Fixed a possible range violation in the Diet compiler for raw/filter nodes
- Fixed detection of horizontal lines in the Markdown parser
- Fixed handling of one character methods in the REST interface generator - pull #195
- Fixed the reverse proxy to not drop the "Content-Length" header
- Fixed
HttpClient
to obey "Connection: close" responses - Fixed
Libevent2Signal
to not move tasks between threads
Comments for the post are currently disabled.
0 comments