All Projects → emmett-framework → Emmett

emmett-framework / Emmett

Licence: other
The web framework for inventors

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Emmett

Sanic
Async Python 3.7+ web server/framework | Build fast. Run fast.
Stars: ✭ 15,660 (+2320.4%)
Mutual labels:  asyncio, web-framework
nardis
A small web framework based on ASGI
Stars: ✭ 14 (-97.84%)
Mutual labels:  web-framework, asyncio
Bocadillo
(UNMAINTAINED) Fast, scalable and real-time capable web APIs for everyone
Stars: ✭ 401 (-38.02%)
Mutual labels:  asyncio, web-framework
Muffin
Muffin is a fast, simple and asyncronous web-framework for Python 3
Stars: ✭ 538 (-16.85%)
Mutual labels:  asyncio
Tornado Celery
Non-blocking Celery client for Tornado
Stars: ✭ 561 (-13.29%)
Mutual labels:  asyncio
Aioquic
QUIC and HTTP/3 implementation in Python
Stars: ✭ 600 (-7.26%)
Mutual labels:  asyncio
Gevent
Coroutine-based concurrency library for Python
Stars: ✭ 5,656 (+774.19%)
Mutual labels:  asyncio
Aiohttp Demos
Demos for aiohttp project
Stars: ✭ 517 (-20.09%)
Mutual labels:  asyncio
Grpclib
Pure-Python gRPC implementation for asyncio
Stars: ✭ 615 (-4.95%)
Mutual labels:  asyncio
Easy Scraping Tutorial
Simple but useful Python web scraping tutorial code.
Stars: ✭ 583 (-9.89%)
Mutual labels:  asyncio
Aredis
redis client for Python asyncio (has support for redis server, sentinel and cluster)
Stars: ✭ 576 (-10.97%)
Mutual labels:  asyncio
Opsdroid
🤖 An open source chat-ops bot framework
Stars: ✭ 563 (-12.98%)
Mutual labels:  asyncio
Isis
Apache Isis™ software is a framework for rapidly developing domain-driven apps in Java. Write your business logic in entities, domain services or view models, and the framework dynamically generates a representation of that domain model as a webapp or as a RESTful API. For prototyping or production.
Stars: ✭ 605 (-6.49%)
Mutual labels:  web-framework
Aiokafka
asyncio client for kafka
Stars: ✭ 544 (-15.92%)
Mutual labels:  asyncio
Faust
Python Stream Processing
Stars: ✭ 5,899 (+811.75%)
Mutual labels:  asyncio
Asyncpg
A fast PostgreSQL Database Client Library for Python/asyncio.
Stars: ✭ 5,216 (+706.18%)
Mutual labels:  asyncio
Aio Pika
AMQP 0.9 client designed for asyncio and humans.
Stars: ✭ 611 (-5.56%)
Mutual labels:  asyncio
Kretes
A Programming Environment for TypeScript & Node.js built on top of VS Code
Stars: ✭ 570 (-11.9%)
Mutual labels:  web-framework
Kweb Core
A lightweight Kotlin web framework for backend developers 🦆
Stars: ✭ 567 (-12.36%)
Mutual labels:  web-framework
Yappi
Yet Another Python Profiler, but this time thread&coroutine&greenlet aware.
Stars: ✭ 595 (-8.04%)
Mutual labels:  asyncio

Emmett

Emmett is a full-stack Python web framework designed with simplicity in mind.

The aim of Emmett is to be clearly understandable, easy to be learned and to be used, so you can focus completely on your product's features:

from emmett import App, request, response
from emmett.orm import Database, Model, Field
from emmett.tools import service, requires

class Task(Model):
    name = Field.string()
    is_completed = Field.bool(default=False)

app = App(__name__)
app.config.db.uri = "postgres://user:[email protected]/foo"
db = Database(app)
db.define_models(Task)
app.pipeline = [db.pipe]

def is_authenticated():
    return request.headers["Api-Key"] == "foobar"
    
def not_authorized():
    response.status = 401
    return {'error': 'not authorized'}

@app.route(methods='get')
@service.json
@requires(is_authenticated, otherwise=not_authorized)
async def todo():
    page = request.query_params.page or 1
    tasks = Task.where(
        lambda t: t.is_completed == False
    ).select(paginate=(page, 20))
    return {'tasks': tasks}

pip version Tests Status

Documentation

The documentation is available at https://emmett.sh/docs. The sources are available under the docs folder.

Examples

The bloggy example described in the Tutorial is available under the examples folder.

Status of the project

Emmett is production ready and is compatible with Python 3.7 and above versions.

Emmett follows a semantic versioning for its releases, with a {major}.{minor}.{patch} scheme for versions numbers, where:

  • major versions might introduce breaking changes
  • minor versions usually introduce new features and might introduce deprecations
  • patch versions only introduce bug fixes

Deprecations are kept in place for at least 3 minor versions, and the drop is always communicated in the upgrade guide.

How can I help?

We would be very glad if you contributed to the project in one or all of these ways:

  • Talking about Emmett with friends and on the web
  • Adding issues and features requests here on GitHub
  • Participating in discussions about new features and issues here on GitHub
  • Improving the documentation
  • Forking the project and writing beautiful code

License

Emmmett is released under the BSD License.

However, due to original license limitations, some components are included in Emmett under their original licenses. Please check the LICENSE file for more details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].