Skip to main content

A simple, yet fast, Python framework with named routes

Project description

Artanis Framework Logo

Artanis

A lightweight, minimalist ASGI web framework for Python built with simplicity and performance in mind.

📚 Complete Documentation | 🚀 Quick Start Guide | 💡 Examples | 🔍 API Reference

Tests Code Quality Python 3.8+ License

Artanis provides a clean, intuitive API for building modern web applications with Express.js-style middleware and comprehensive built-in features.

✨ Key Features

  • 🚀 Express.js-Style API: Clean app.get(), app.post(), app.use() middleware patterns
  • 🏗️ Advanced Routing: Modular routers, path parameters, nested subrouting, parameterized mounts
  • 🔐 Built-in Security: CORS, CSP, HSTS, rate limiting, security headers, comprehensive middleware suite
  • 📡 Event System: Startup/shutdown events, custom business events, priority execution, event middleware
  • ⚠️ Exception Handling: Custom exception hierarchy, structured error responses, automatic logging
  • 📊 Professional Logging: Structured logging, JSON/text formats, request tracking, component-specific loggers
  • 🔷 Type Safety: Complete type hints, mypy compatibility, excellent IDE support
  • 🎯 ASGI Compliant: Works with Uvicorn, Hypercorn, Daphne - zero runtime dependencies

📖 View Complete Feature List & Documentation →

📦 Installation

pip install artanis

Requirements: Python 3.8+ • Zero runtime dependencies

📚 Development Setup Guide | 🔧 Contributing Guidelines

🚀 Quick Start

from artanis import App

app = App()

# Simple route
async def hello():
    return {"message": "Hello, World!"}

app.get("/", hello)

# Route with path parameter
async def get_user(user_id):
    return {"user_id": user_id, "name": f"User {user_id}"}

app.get("/users/{user_id}", get_user)

# POST route with JSON body
async def create_user(request):
    data = await request.json()
    return {"created": data}

app.post("/users", create_user)

# Run with: uvicorn main:app --reload

🚀 Complete Quick Start Tutorial | 💡 View More Examples

📚 Documentation & Resources

Complete Documentation: nordxai.github.io/Artanis

Quick Links

🚀 CLI Tool

Create new projects instantly:

# Create a new Artanis project
artanis new my-project
cd my-project

# Run your application
uvicorn main:app --reload

🛠️ Development & Testing

# Clone repository
git clone https://github.com/nordxai/Artanis
cd Artanis

# Install in development mode
pip install -e ".[dev]"

# Run tests (191 comprehensive tests)
pytest

# Code quality checks
ruff check . && mypy src/artanis

🤝 Community & Support

  • 📚 Documentation - Complete guides and API reference
  • 🐛 Issues - Bug reports and feature requests
  • 💬 Discussions - Community support and questions
  • 📦 PyPI - Package releases and changelog
  • GitHub - Source code and contributions

Requirements: Python 3.8+ • Zero runtime dependencies • ASGI compliant


Built with ❤️ for the Python community
Express.js simplicity meets Python performance

Download files

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

Source Distribution

artanis-0.1.4.tar.gz (77.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

artanis-0.1.4-py3-none-any.whl (60.3 kB view details)

Uploaded Python 3

File details

Details for the file artanis-0.1.4.tar.gz.

File metadata

  • Download URL: artanis-0.1.4.tar.gz
  • Upload date:
  • Size: 77.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for artanis-0.1.4.tar.gz
Algorithm Hash digest
SHA256 4e069550b424867f8d0c1fac1900bbaee1aaa380a97315b717317197dc79a9ee
MD5 7897de006b88adc1e293237fa293faca
BLAKE2b-256 fd7223ff5a9bd9973fdd91bd278eb16ec0476ddfe99904aaeff2f1a9839d5155

See more details on using hashes here.

Provenance

The following attestation bundles were made for artanis-0.1.4.tar.gz:

Publisher: release.yml on nordxai/Artanis

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file artanis-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: artanis-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 60.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for artanis-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 3c36a87aa9ef6327203b70c844ac19ec95284dbc6cc1f6573dff8eee4855ef7e
MD5 a7466ffedd8960fdae72220af8631c51
BLAKE2b-256 d12e81cc3e8bef9cc60685b22cdd1e90e1ebedad455287dde4a2d1a655b2b851

See more details on using hashes here.

Provenance

The following attestation bundles were made for artanis-0.1.4-py3-none-any.whl:

Publisher: release.yml on nordxai/Artanis

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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