Skip to content

About AppEngine Toolkit

sgammon edited this page Oct 6, 2011 · 5 revisions

Welcome to the AppEngine toolkit.

Design Goals

The AppEngine Toolkit is designed to get you up and running on GAE's Python runtime as fast as possible, by providing you with the best & brightest libraries available at each level of abstraction and providing boilerplate code that a) doesn't get in your way, and b) saves you time.

Primary design goals are:

  • Small footprint
  • 0-60 as fast as possible
  • An easy A+ rating in YSlow

Scope

AET is designed to be a pre-integrated package of libraries for the App Engine Python runtime that quickly unpack and give a developer a head start on a new project. It's not another framework, and it's not another HTML5 boilerplate, though it does come with both in a packaged environment that "just works".

"Batteries Included"

As a suite of tools designed to save the developer time and headaches, AET comes integrated with a number of modern libraries and development tools included. The list of completed (or in-progress) integrations:

JS Libraries

Python Libraries

Development Tools

Custom complexity

In addition to providing the latest & greatest libraries on the front and back end, AET includes a few custom components to make development even easier.

Custom Python Components

Assets API

  • Allows "url_for"-like syntax for registered & unregistered assets
  • Automatic switchover to CDN, with support for multiple hostnames
  • Config-based asset version management, for easy cachebusting
  • Flexible, config-based syntax for registered assets & URL config

Custom Base Handler & Pipeline

  • Lazy-loaded class property shortcuts to App Engine API's (e.g. self.db.put and self.memcache.get)
  • Base Jinja2 template context, exposing builtin Python functions and AppTools functions
  • Logging adapters for Pipelines - send backend log messages to XMPP, Channel API, or email

Custom Jinja2 Environment

  • Caches template source code in memcache & local instance cache
  • Caches compiled templates as Python modules for ultimate speed

Custom ProtoRPC Middleware via decorators for remote_methods

  • Decorators for securing methods via custom or AppEngine-based authentication & authorization
  • Decorators for auditing & logging remote methods, to memcache or the datastore
  • Decorators for intelligently caching RPC responses
  • Decorators for enabling browser-side caching of RPC responses (requires use of integrated JS library, see below)

Custom JS Components

  • Client library for interacting with ProtoRPC-based JSON web services
  • Support for browser-side caching of RPC data
  • Integration with BackboneJS
  • Optional integration with AmplifyJS

Custom Dev Tools

  • Scripts for building & minifying CoffeeScript/JS assets
  • Scripts for building & minifying SASS/CSS assets
  • Scripts for uploading assets to CDN (support for Google Storage included)
  • Integrated scripts for provisioning new projects & deploying to the cloud

"Future-proof"

The Python side of AET includes buildout integration, so the Python libs that are installed into your lib/dist are the latest versions, downloaded from pypi.

Clone this wiki locally