Skip to content

Getting Started¶

Welcome to Cello! An ultra-fast Python web framework, powered by Rust. You'll go from zero to a running API in under 5 minutes. Let's build something incredible.


What You'll Build¶

By the end of this guide, you'll have a fully functional REST API running at blazing speed:

app.py
from cello import App, Response

app = App()

@app.get("/")
def hello(request):
    return {"message": "Hello, World!", "framework": "Cello"}

@app.get("/users/{id}")
def get_user(request):
    user_id = request.params["id"]
    return {"id": user_id, "name": "Jane Doe", "active": True}

@app.post("/users")
def create_user(request):
    data = request.json()
    return Response.json({"created": True, **data}, status=201)

if __name__ == "__main__":
    app.run()
Terminal output
$ python app.py
  ___ ___| | | ___
 / __/ _ \ | |/ _ \   Cello v1.0.1
| (_|  __/ | | (_) |  Rust-powered Python Web Framework
 \___\___|_|_|\___/

Cello running at http://127.0.0.1:8000

Prerequisites¶

Before you begin

Make sure you have the following installed on your system:

Requirement Version Check Command
Python 3.12+ python --version
pip Latest pip --version
Rust toolchain Latest (source builds only) rustc --version

Python 3.12 Required

Cello uses PyO3 with the abi3-py312 flag. Python 3.11 and earlier are not supported.


Setup in 4 Steps¶

  • Install Cello


    Install the framework with a single command.

    pip install cello-framework
    
    git clone https://github.com/jagadeesh32/cello.git
    cd cello && pip install maturin && maturin develop
    
  • Create Your App


    Create a new file and initialize Cello.

    app.py
    from cello import App
    
    app = App()
    
  • Add Routes


    Define your endpoints with clean decorators.

    app.py
    @app.get("/")
    def hello(request):
        return {"message": "Hello, World!"}
    
    @app.get("/users/{id}")
    def get_user(request):
        return {"id": request.params["id"]}
    
  • Run It


    Start the server and visit your API.

    app.py
    if __name__ == "__main__":
        app.run()
    
    python app.py
    # Visit http://127.0.0.1:8000
    

Quick Navigation¶

  • Installation


    Detailed installation instructions for all platforms, including virtual environments and troubleshooting.

    Install Guide

  • Quick Start


    A 5-minute walkthrough that covers routes, requests, responses, and your first working API.

    Quick Start

  • First Application


    Build a complete REST API step by step with CRUD operations, error handling, and validation.

    First App

  • Project Structure


    Learn how to organize your Cello project for small scripts, medium apps, and large-scale services.

    Structure

  • Configuration


    Configure your application for development, testing, and production environments.

    Configuration


Next Steps¶

Once you've built your first app, explore these areas to level up:

  • Explore Features


    Discover routing, middleware, security, real-time, and more.

    Features

  • Learn with Tutorials


    Build a REST API, chat app, auth system, and microservices.

    Tutorials

  • Browse Examples


    Copy-paste examples from basic to enterprise-grade apps.

    Examples


Join the Cello Community

Have questions? Want to share what you're building? Join the community:

We'd love to hear from you!