AppengineJS是個開源的JavaScript程序庫,用于訪問Google App Engine Python SDK,開發(fā)者可以使用它創(chuàng)建Web應(yīng)用并部署到GAE上,進而訪問Google的持久化存儲和服務(wù)。
雖然AppengineJS使用JavaScript移植了App Engine Python API,但它實際上卻運行在Rhino(使用Java編寫的Mozilla JavaScript引擎)之上。因此,使用AppengineJS的JavaScript代碼最終是部署在JVM上的。AppengineJS的創(chuàng)建者之所以選擇該方案是因為他們覺得“Python API的設(shè)計與JavaScript更相近”。
Python到JavaScript的移植是通過JS命名約定實現(xiàn)的,Python的this_is_a_name標(biāo)識符變成了thisIsAName,所有的delete()函數(shù)被重命名為remove()以避免與delete關(guān)鍵字沖突。
到目前為止已經(jīng)移植了如下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應(yīng)用,另一個是由AppengineJS和Nitro開發(fā)的博客應(yīng)用(tar.gz)。