Skip to main content

Modern Microservices Framework

Project description

🚀 ProServe - Modern Microservices Framework

PyPI version License Build Status

Build production-ready microservices with minimal code - Python decorators or YAML manifests!

🎯 98% Less Boilerplate • 5-Minute Start • Production Ready

ProServe is a revolutionary microservices framework that combines the simplicity of Flask with the power of modern architecture. Create APIs, static sites, real-time chat, and more with just a few lines of code.

🚀 Fully Modular Architecture: All components are now modular, testable, and follow SOLID principles
🧪 Comprehensive E2E Testing: 8+ test suites covering real-world scenarios, security, performance, and integrations

⚡ Quick Start (3 Lines of Code!)

# app.py
from proserve import Service

app = Service("my-api")

@app.endpoint("/", method="GET")
async def hello(request):
    return {"message": "Hello World! 🚀"}

if __name__ == "__main__":
    app.run(port=8080)
python app.py
# Open: http://localhost:8080

That's it! You have a production-ready API running.

🎓 New to microservices? Check out our Junior Quick Start Guide - "ProServe in 5 minutes"

🏗️ Manifest-Driven Development

Note: Manifests are not outdated. They are a core feature of ProServe, providing a declarative way to define microservices using YAML. The newer decorator-based approach complements manifests, offering flexibility for developers who prefer coding over configuration. Both approaches are fully supported and production-ready.

With tools like SELLM, you can even generate manifests using AI from simple text descriptions, making it incredibly easy to create complex services without manual configuration.

Example 1: Basic Manifest

# manifest.yml
name: my-service
port: 8080

endpoints:
  - path: /api/status
    method: GET
    response:
      status: "ok"
      version: "1.0.0"
  
  - path: /api/hello/{name}
    method: GET
    response:
      message: "Hello {{name}}!"

static:
  enabled: true
  path: ./public
proserve run
# Automatically creates API from manifest.yml
# Open: http://localhost:8080/api/status
# Try: http://localhost:8080/api/hello/World

Example 2: Advanced Manifest with WebSocket

# advanced_manifest.yml
name: chat-service
port: 8081

endpoints:
  - path: /api/chat/info
    method: GET
    response:
      status: "Chat Service Running"
      users: 0

websockets:
  - path: /ws/chat
    handler: chat_handler
    on_connect:
      message: "User connected"
    on_disconnect:
      message: "User disconnected"

static:
  enabled: true
  path: ./chat_ui
proserve run advanced_manifest.yml
# Starts a chat service with WebSocket support
# Open: http://localhost:8081/api/chat/info
# Connect WebSocket: ws://localhost:8081/ws/chat

📖 Documentation

All detailed documentation is available in the docs folder:

Python Packages

Explore the ecosystem of Python packages related to ProServe:

  • ProServe - Core microservices framework
  • Servos - Environment isolation and orchestration
  • wmlog - Centralized structured logging
  • SELLM - AI-powered manifest generator
  • EDPMT - Hardware control framework for IoT

💡 Why ProServe?

  • Zero-Config APIs: Build REST endpoints in 3 lines of code
  • Manifest-Driven: Define services in YAML, like docker-compose
  • Multi-Environment: Run anywhere - local, Docker, Kubernetes, embedded
  • Full-Stack: HTTP, WebSocket, background tasks, static hosting
  • Production-Ready: Logging, monitoring, security built-in

License

ProServe is released under the Apache Software License 2.0. See the LICENSE file for details.

Start building microservices today with ProServe!

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

proserve-2.0.6.tar.gz (256.9 kB view details)

Uploaded Source

Built Distribution

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

proserve-2.0.6-py3-none-any.whl (259.0 kB view details)

Uploaded Python 3

File details

Details for the file proserve-2.0.6.tar.gz.

File metadata

  • Download URL: proserve-2.0.6.tar.gz
  • Upload date:
  • Size: 256.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.0

File hashes

Hashes for proserve-2.0.6.tar.gz
Algorithm Hash digest
SHA256 289fd3a921f4be42b5d0730ed74e54530af085eb99387c32a986dbc315310a21
MD5 3fb5952beae1e18f91b29273b231d5e2
BLAKE2b-256 23cdf2ffe570827592030ba4a674016e88fe9cf81c587148a58c7ed5080687e9

See more details on using hashes here.

File details

Details for the file proserve-2.0.6-py3-none-any.whl.

File metadata

  • Download URL: proserve-2.0.6-py3-none-any.whl
  • Upload date:
  • Size: 259.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.0

File hashes

Hashes for proserve-2.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 7c34c43edc2a75a1061b72a8d1e85394af9f0fe8152adf1145d98d73e0df8258
MD5 001a6f15ac944ad2eb5b95754b5e2370
BLAKE2b-256 57e0b9e19dbcdcd1b170b631fa7a1ff6f8d57816dd0cbe000a46282b532c28f5

See more details on using hashes here.

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