O AppengineJS é um port JavaScript open source do Google App Engine Python SDK, de grande utilidade para criar aplicações que podem ser implantadas na infraestrutura do GAE, acessando o armazenamento persistente e os serviços do Google.
Enquanto o AppengineJS é um port JavaScript do App Engine Python API, na realidade, ele roda no Rhino, a engine JavaScript do Mozilla que foi escrito em Java. Logo, o código JavaScript utilizando o AppengineJS na verdade é implantado na JVM. Os autores optaram por esta solução por acreditarem que "o design da API Python está mais próximo do mundo JavaScript".
O port de Python para JavaScript foi realizado utilizando as convenções de nomenclatura do JavaScript, ou seja, o identificador Python this_is_a_name
se tornou thisIsAName
, e todas as funções delete() foram renomeadas para remove(), para evitar conflito com a palavra reservada delete
.
As seguintes APIs foram portadas até o momento:
- Datastore (cobertura: 90%, utilizável, são esperados mudanças pequenas na API)
- Memcache (cobertura: 90%, utilizável)
- URL Fetch (cobertura: 90%, utilizável)
- Mail (cobertura: 90%, utilizável)
- XMPP (cobertura: 90%, utilizável)
- Images (cobertura: 60%, utilizável)
- Users (cobertura: 80%, utilizável)
- OAuth (cobertura: 20%, em andamento)
- Task Queue (cobertura: 80%, utilizável)
- Blobstore (cobertura: 50%, utilizável)
- Quota (cobertura: 90%, utilizável)
- Local Unit Testing (cobertura: 80%, utilizável, é esperado mudanças na API)
O projeto no GitHub disponibiliza o código fonte, um link para a documentação, e links para dois exemplos utilizando o AppengineJS: uma aplicação JSGI utilizando o Datastore API (tar.gz), e um blog suportado pelo Appengine JS e Nitro (tar.gz).