AppengineJS 是个开源的 JavaScript 程序库,用于访问 Google App Engine Python SDK ,开发者可以使用它创建 Web 应用并部署到 GAE 上,进而访问 Google 的持久化存储和服务。
虽然 AppengineJS 使用 JavaScript 移植了 App Engine Python API,但它实际上却运行在 Rhino(使用 Java 编写的 Mozilla JavaScript 引擎)之上。因此,使用 AppengineJS 的 JavaScript 代码最终是部署在 JVM 上的。AppengineJS 的创建者之所以选择该方案是因为他们觉得“Python API 的设计与 JavaScript 更相近”。
Python 到 JavaScript 的移植是通过 JS 命名约定实现的,Python 的 this_is_a_name 标识符变成了 thisIsAName,所有的 delete() 函数被重命名为 remove() 以避免与 delete 关键字冲突。
到目前为止已经移植了如下 API:
- Datastore (覆盖率 90%,可以使用,除了少量的 API 变更)
- Memcache (覆盖率 : 90%, 可以使用)
- URL Fetch (覆盖率 : 90%, 可以使用)
- Mail (覆盖率 : 90%, 可以使用)
- XMPP (覆盖率 : 90%, 可以使用)
- Images (覆盖率 : 60%, 可以使用)
- Users (覆盖率 : 80%, 可以使用)
- OAuth (覆盖率 : 20%, 处理中)
- Task Queue (覆盖率 : 80%, 可以使用)
- Blobstore (覆盖率 : 50%, 可以使用)
- Quota (覆盖率 : 90%, 可以使用)
- Local Unit Testing (覆盖率 : 80%, 可以使用,除了一些 API 变更)
GitHub 项目包含了源代码、文档链接以及使用AppengineJS 的两个示例链接:一个是使用了Datastore API (tar.gz)的JSGI 应用,另一个是由AppengineJS 和Nitro 开发的博客应用(tar.gz)。
查看英文原文: AppengineJS, a JavaScript Port of the Google App Engine Python SDK
评论