The first release of the revamped core module is nearing, and along with that, a compatible vibe.d release (0.8.0). The new core module is still opt-in in this release and can be activated using a subConfiguration "vibe-d:core" "vibe-core" directive in dub.sdl ("subConfigurations": {"vibe-d:core": "vibe-core"} in dub.json).

In parallel to the 0.8.x branch, the 0.7.x branch will stay maintained for a while, but the 0.7.31 release will be the last one to contain new features. For anyone who does not depend on old D frontends, it is strongly recommended to switch to the 0.8.x branch as soon as possible and also to test with vibe-core (production deployments are safer off staying with the old vibe-d:core module for now), as the transition period is supposed to be only as long as necessary to guarantee a stable implementation.

To give an overview, here is the list of the biggest changes:

  • The whole library is now split into fully separate sub packages. This
    required some code changes, because there were some hidden circular
    dependencies between modules. Some parts have also been moved to the
    new sub packages "stream", "textfilter", "crypto" and "inet".
  • Large parts of the API are now annotated with nothrow and @safe. In
    case of APIs that depend on callbacks, these can be breaking changes,
    but the most prominent places have deprecation paths in place.
  • The vibe-d:core sub module has got a new configuration "vibe-core"
    that causes it to be replaced by the vibe-core package.
  • The stream API has been made forward compatible with vibe-core. This
    adds optional IOMode parameters to the read/write methods (the value
    is currently ignored) and deprecates the leastSize and
    dataAvailableForRead properties.

The full change log for can be found at https://github.com/rejectedsoftware/vibe.d/blob/master/CHANGELOG.md

DUB pages:
http://code.dlang.org/packages/vibe-d/0.8.0-beta.1
http://code.dlang.org/packages/vibe-d/0.7.31-beta.1