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.5.tar.gz (243.2 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.5-py3-none-any.whl (231.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: proserve-2.0.5.tar.gz
  • Upload date:
  • Size: 243.2 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.5.tar.gz
Algorithm Hash digest
SHA256 a43d26bee2456400635399581b70a97bb184e40398fd906c1038ec9854875a34
MD5 45b940ba8069fc02bf0778f35738e642
BLAKE2b-256 29d21cbb0ffc022ecdd0fa5f5b32be82a0db2573c7b1ca19b1e570713cc47420

See more details on using hashes here.

File details

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

File metadata

  • Download URL: proserve-2.0.5-py3-none-any.whl
  • Upload date:
  • Size: 231.1 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.5-py3-none-any.whl
Algorithm Hash digest
SHA256 abfce9f28ac93523a9bc34c035144db608bb463e6287c4ce8e5b9bc5fa00a5a6
MD5 3c2d403a229e3df67012b663b51e3cf9
BLAKE2b-256 ff1c37cac29ff4ee35013a07a520516123e6805ab22e1c7fd402060d3bc76b3f

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