The C++ REST SDK (“Casablanca”)

The C++ REST SDK (codename “Casablanca”) has officially been released as an open source project on CodePlex ( It includes tools to quickly write modern, asynchronous C++ code that connects with REST services.

It makes it much more easy to write application in C++ that use networking. Here is a simple example that uploads a file to an HTTP Server:

#include <http_client.h>
#include <filestream.h>
#include <uri.h>
#include <thread>

#pragma comment(lib, "casablanca110")

using namespace concurrency::streams;
using namespace web::http::client;
using namespace web::http;
int main()
  // Open stream to file.
  file_stream<unsigned char>::open_istream(L"ReadMe.txt").then([](basic_istream<unsigned char> fileStream)
    // Make HTTP request with the file stream as the body.
	http_client client(U(""));
    client.request(methods::PUT, L"myfile", fileStream).then([fileStream](http_response response)
      // Perform actions here to inspect the HTTP response...
      if (response.status_code() == status_codes::OK)
  return 0;

The library also makes it easy to create and consume JSON formatted strings from C++.
Checkout this blog post for a little bit more details.


Leave a Comment

Name: (Required)

E-mail: (Required)