Silicon 是高性能,面向中间件的 C++14 HTTP Web 框架,可以让你使用 C++ 编写快速并且健壮的 Web APIs。

今天 Silicon 团队发布了 Silicon 的第一个版本,此版本发布目的是提供一个稳定的库来使用 C++ 编写快速的 HTTP APIs。

Silicon 主要特性:

  • API 的最终形态是嵌入领域专用语言:HTTP 方法现在很明确,参数可以通过 URL,GET 或者 POST 方法传输:
    auto api = http_api(
    // URL parameter
    GET / _hello1 / _name[std::string()] =
           [] (auto p) { return std::string("hello ") + p.name; },
    
    // GET parameter
    GET / _hello2 * get_parameters(_name = std::string()) =
           [] (auto p) { return std::string("hello ") + p.name; },
    
    // POST parameter
    POST / _hello3 * post_parameters(_name = std::string()) =
           [] (auto p) { return std::string("hello ") + p.name; }
    
    );
    
  • 更低的编译耗时: 编译器编译 silicon APIs 的时间会降低 60%,因为简化了 IOD依赖注入代码。建议使用 clang++,比 Silicon 的模板更快。
  • 快速外部 C 后端:Silicon 现在封装了两个最快的 C web 服务器库来服务这些 APIs:Microhttpd,稳定且广泛使用;LWAN,更快但正在尝试阶段。
  • 支持 MySQL 和 SQLite:: 提供中间件,包括 Mysql 和 SQLite 连接,极小对象关系型映射和会话存储。

Silicon 很容易扩展为:

  • 新中间件
  • 新后端 (websockets, 其他非 HTTP 协议)
  • 新消息格式 (messagepack, protobuf, …)

Silicon 遵循 MIT 开源授权协议,代码已经托管到 GitHub:https://github.com/matt-42/silicon/

Silicon 主页:http://siliconframework.org/