vibe.d beta banner
get vibe.d
0.8.1

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

vibe.d

fork vibe.d on github

Productive

  • High-level declarative REST and web application framework
  • Full HTTP(S) stack with client, server and proxy implementations
  • Shipped with native database drivers for MongoDB and Redis
  • Complete concurrency toolkit and support for low level I/O operations
  • Read more…

Fast

  • Asynchronous I/O for maximum speed and minimum memory usage
  • Compile-time "Diet" templates for unparalleled dynamic page speed
  • Compiled to native machine code
  • Multi-threading and integrated load-balancing*
  • Read more…

Simple

  • Fiber based blocking programming model for concise and intuitive development
  • Compact API with sensible default choices
  • Full support for exception based error handling
  • Simple access to third-party extension libraries using the DUB package system
  • Read more…

Latest News

Example of a simple HTTP server

import vibe.vibe;

void main()
{
	auto settings = new HTTPServerSettings;
	settings.port = 8080;
	
	listenHTTP(settings, &handleRequest);
	runApplication();
}

void handleRequest(HTTPServerRequest req, HTTPServerResponse res)
{
	if (req.path == "/")
		res.writeBody("Hello, World!");
}

Example of an echo server

import vibe.vibe;

void main()
{
	listenTCP(7, (conn) { conn.write(conn); });
	runApplication();
}

* Still work-in-progress, implemented by the vibedist project.