微软开源 C++ REST SDK——Casablanca

  • Jeff Martin
  • 臧秀涛

2013 年 3 月 4 日

话题:RESTC++语言 & 开发

微软的代号为Casablanca的 C++ REST SDK 已经基于 Apache 许可证开源。它被描述为“微软为了以原生代码支持基于云的客户端 / 服务器通信所做的努力,采用了现代异步 C++ API 设计”。该产品使用 C++11 实现,微软希望提供一种更简单的编写客户端 HTTP 代码的方法。

Casablanca 支持多个平台,除了 Windows 7、Windows 8 之外还支持 Linux。微软的开发人员 Artur Laksberg 提到,对 WinXP 和 Vista 的支持正在开发之中。该产品的另一个亮点是支持异步操作。微软在公布时提供了一些例子来说明 Casablanca 的使用,一个是通过 HTTP 上传文件,一个是 JSON 对象的创建。

Windows 和 Linux 上的构建版本都支持以下特性:

  • 能够通过 HTTP 客户端创建到服务器的连接,并能发送请求和处理响应。
  • 支持 URI 的构建与使用。
  • 能够构建、解析和序列化 JSON 值。
  • 可以通过流(Stream)和流缓冲(Stream Buffer)对底层介质进行异步的数据读写。

Casablanca 中有几种不同的流和流缓冲可供使用:基于内存的生产者 / 消费者、文件、可以配合 STL 容器使用的基于内存的流、裸指针流和互操作流。互操作流使得“Casablanca 能够提供两组类,一组使用异步流到 iostream 的接口,另一组使用 iostream 到异步流的接口”。

Linux HTTP 客户端还有些限制,因为它尚不支持 HTTPS、代理和认证,但微软介绍说这些特性会包含在未来的版本中。Casablanca 的源代码放在了 CodePlex 上,可以在线查看或通过 Git 获取,还可以以 Zip 包形式下载最新的快照版本。

查看英文原文:Casablanca's C++ SDK Whitelisted for Open Source

RESTC++语言 & 开发