vibe.d beta banner
get vibe.d

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

vibe.d 0.7.10 release

vibe.d 0.7.10 release

Header image
Thu, 03 Jan 2013The Win32 back end now has working TCP socket support. Also, the form and REST interface generators have been improved and Diet templates support arbitrary D expressions for attribute values. Finally, everything compiles now on Win64 using DMD 2.061.

Features and improvements

  • TCP sockets in the Win32 back end work now
  • Added support for struct and array parameters to registerFormInterface (by Robert Klotzner aka eskimor) - issue #138, issue #139, issue #140
  • registerFormInterface now ignores static methods (by Robert Klotzner aka eskimor) - issue #136
  • Added support for arbitrary expressions for attributes in Diet templates
  • Added RedisClient.zrangebyscore and fixed the return type of RedistClient.ttl (long) (by Simon Kerouack aka ekyo) - issue #141
  • renderCompat() does not require the parameter values to be wrapped in a Variant anymore
  • Added a BsonObjectID.timeStamp property that extracts the unix time part
  • Added a versions of deserialize(B/J)son that return the result instead of writing it to an out parameter
  • The REST interface client now can handle more foreign types by searching for all needed module imports recursively
  • listenTcp now returns a TcpListener object that can be used to stop listening again
  • Added vibe.inet.message.decodeEncodedWords and decodeEmailAddressHeader
  • Added compileDietFileMixin usable for directly mixing in Diet templates (they are instantiated in the caller scope)
  • The SMTP client now prints the last command whenever an error is returned from the server - see issue #126
  • Documentation improvements
  • All examples now use shared static this instead of static this so that they will behave correctly once multi-threading gets enabled
  • vibe.core now only depends on vibe.inet and vibe.utils.memory and thus is ready to be used as a stand-alone library
  • Bson.length is now allowed for Bson.Type.Object and added Bson.EmptyArray
  • Setting HttpFileServerSettings.maxAge to zero will cause the "Expires" and "Cache-Control" headers to be omitted
  • Url can now be constructed as Url(str) in addition to Url.parse(str)
  • The HTTP server logger now logs the requesting host name instead of the selected configuration's host name
  • Using ParameterIdentifierTuple now for the REST interface generator, which makes the _dummy parameter hack unnecessary
  • Compiles with DMD 2.061 and on Win64
  • User and group names are now accepted in addition to UID/GID in /etc/vibe/vibe.conf - issue #133

Bug fixes

  • Fixed forwarding of non-ASCII unicode characters in htmlEscape
  • Fixed the Diet template parser to accept underscores in ID and class identifiers
  • Fixed HEAD requests properly falling back to GET routes in the UrlRouter
  • Fixed parsing of unicode escape sequences in the JSON parser - issue #146
  • Made vibe.core.mutex.Mutex actually pass its unit tests
  • Fixed compile errors occuring when using the field selector parameter of MongoDB.find/findOne/findAndModify
  • Fixed some cases of InvalidMemoryOperationError in ConnectionPool/LockedConnection - possibly issue #117
  • Avoid passing 0x8000 (O_BINARY) on non-Windows systems to open(), as this may cause the call to fail (by Martin Nowak) - issue #142
  • Fixed creation of HTTP sessions (were not created before at least one key was set)
  • Fixed the error detection code (safe mode) for the MongoDB client
  • int values are now correctly serialized as Bson.Type.Int instead of Bson.Type.Long
  • Fixed handling of the "X-Forwarded-For" header in the reverse proxy server in case of a proxy chain
  • During the build, temporary executables are now built in %TEMP%/.rdmd/source so they pick up the right DLL versions
  • Fixed the daytime example (readLine was called with a maximum line length of zero) - issue #122, issue #123


Posted at 09:56:25 +0100 by Sönke Ludwig

Comments for the post are currently disabled.