Skip to main content

🚀 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!

Metadata

Release files for proserve 2.0.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for proserve 2.0.6
File Size Uploaded
proserve-2.0.6.tar.gz 256.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for proserve 2.0.6
File Interpreter ABI Platform
proserve-2.0.6-py3-none-any.whl Python 3 none any Details

Total release size: 515.8 kB

Release files / proserve-2.0.6.tar.gz

Download URL proserve-2.0.6.tar.gz
Size 256.9 kB
Tags Source
SHA-256 checksum
How to use checksums
289fd3a921f4be42b5d0730ed74e54530af085eb99387c32a986dbc315310a21
BLAKE2b-256 checksum
How to use checksums
23cdf2ffe570827592030ba4a674016e88fe9cf81c587148a58c7ed5080687e9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.0

Release files / proserve-2.0.6-py3-none-any.whl

Download URL proserve-2.0.6-py3-none-any.whl
Size 259.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7c34c43edc2a75a1061b72a8d1e85394af9f0fe8152adf1145d98d73e0df8258
BLAKE2b-256 checksum
How to use checksums
57e0b9e19dbcdcd1b170b631fa7a1ff6f8d57816dd0cbe000a46282b532c28f5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.0

Release history Release notifications | RSS feed

This release

2.0.6 This release

2 release files

2.0.5

2 release files

2.0.4

2 release files

2.0.3

2 release files

2.0.1

2 release files

1.1.0

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page