微软的代号为 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 包形式下载最新的快照版本。
评论