Skip to main content

Cafeto is a lightweight yet powerful framework designed as a top layer over Starlette, focusing on simplifying and accelerating the development of modern APIs. It harnesses the robust foundation of Starlette, offering additional tools for more efficient and organized development.

Project description

Cafeto

Cafeto is a lightweight yet powerful framework designed as a top layer over Starlette, focusing on simplifying and accelerating the development of modern APIs. It harnesses the robust foundation of Starlette, offering additional tools for more efficient and organized development.

Requirements

This project requires Python 3.10 or a later version.

Installation

pip install cafeto

Project

Cafeto

Docs

Cafeto docs

Description

Cafeto is a framework designed to create APIs efficiently and in an organized manner, drawing inspiration from other frameworks while incorporating innovative ideas.

  • It offers a robust dependency injection system, supporting three lifecycle types: Singleton, Scoped, and Transient.
  • Facilitates the handling of incoming and outgoing data through DTOs (Data Transfer Objects), which also play a key role in validating and managing server interactions.
  • Includes an event system that extends the framework's capabilities, enabling greater customization and flexibility.
  • Integrates seamlessly with tools like OpenAPI and Swagger to provide interactive documentation and API testing.

With Cafeto, developers can build scalable and reliable APIs effortlessly, leveraging modern features and a well-structured approach.

Starlette

Starlette, the backbone of Cafeto, is widely recognized as one of the most outstanding frameworks for building asynchronous web applications in Python. Its minimalist design, coupled with exceptional performance, makes it ideal for developers seeking flexibility and power. Starlette not only provides routing, middleware, and WebSocket support but also integrates advanced tools for asynchronous task management and testing, establishing itself as a gold standard in modern web development.

Building on Starlette’s power, Cafeto takes the experience to the next level, delivering an even more streamlined and developer-friendly solution for API creation. Together, Cafeto and Starlette form the perfect duo for any developer seeking speed, simplicity, and technical excellence.

Main Objective

To create a smoother development experience for APIs, providing intuitive abstractions, smart default configurations, and compatibility with modern standards.

Example

from typing import Dict

from cafeto import App
from cafeto.mvc import BaseController
from cafeto.responses import Ok


app: App = App()

@app.controller('/home')
class HomeController(BaseController):
    @app.get('/hello')
    async def hello(self, name: str) -> Dict[str, str]:
        return Ok({'Hello': 'World!'})

app.map_controllers()

For more usage details, see the features

License

This project is licensed under the MIT License

Contact

Jonathan Espinal - jonathan.espinal@gmail.com

Documentation

Features

Next Steps

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cafeto-0.1.1.tar.gz (1.4 MB view details)

Uploaded Source

Built Distribution

cafeto-0.1.1-py3-none-any.whl (541.1 kB view details)

Uploaded Python 3

File details

Details for the file cafeto-0.1.1.tar.gz.

File metadata

  • Download URL: cafeto-0.1.1.tar.gz
  • Upload date:
  • Size: 1.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.9

File hashes

Hashes for cafeto-0.1.1.tar.gz
Algorithm Hash digest
SHA256 7edf026be2da739659e0a2c8b3e665d8467034f8d1a1fadcd2f3eed6583015da
MD5 ef1541a811a09bd83cc53f640c38c3c2
BLAKE2b-256 57e19afc27cc64793d2f855689326201d6211016baac28a819c98c45455cb9a7

See more details on using hashes here.

File details

Details for the file cafeto-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: cafeto-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 541.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.9

File hashes

Hashes for cafeto-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d0c0dbd212b2bfbed69752a226e6e69b8df7ac0e74b8411c99306a2d4d48953d
MD5 8000fb6db31a95ba4a074e4937e20098
BLAKE2b-256 c4e2ac66d198849cc65e67b86fb76e031cb8726cb3cfe0e54d393f54c0df1ed0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page