Metadata-Version: 2.0
Name: albatross3
Version: 0.1.1
Summary: A modern async python3 web framework
Home-page: https://github.com/kespindler/albatross
Author: Kurt Spindler
Author-email: kespindler@gmail.com
License: MIT
Keywords: web http server async
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.5
Provides-Extra: dev
Provides-Extra: test

# Albatross

I wanted to see how simple it is to make an modern async web framework. (python3.5 only)

It turns out - it's dead simple.

## Usage

Create an app. Create handlers that have async functions `on_get`, `on_post`, etc. Call add_route with regex-based routes
to add the handlers. Call `app.serve()`.

See `examples/` for examples.

## Features

- You can read the entire codebase in about 10 minutes.
  There are probably many non-HTTP-compliant and subtle bugs as a consequence, but
  it works for building simple or moderately complex servers right now!

- It's natively async

- This works with the awesome `uvloop` project. It doesn't yet work with pypy3, because they don't support python3.5.
  Let's make it happen!

## Framework

The entire framework is 4 files at the moment:

- status_codes.py - blatantly copied from Falcon, because they did such a great job with that framework.
- server.py - the web server you instantiate, add routes & handlers, and allows you to serve
- request.py - a web request object
- response.py - a web response object

Each of those is less than 100 lines or so.

## Current Gotchas

- Be careful with casing on HTTP headers. The framework should force standardization, but currently they are case-sensitive.


## Todo

- tests: tests are a good idea. I should write some.


