Ellar is a lightweight ASGI framework for building efficient and scalable server-side python applications. It supports both OOP (Object-Oriented Programming) and FP (Functional Programming). Built with passion for programming
Ellar is a modern, fast, and lightweight ASGI framework for building scalable web applications and APIs with Python. Built on top of Starlette and inspired by the best practices of frameworks like NestJS, Ellar combines the power of async Python with elegant architecture patterns.
pip install ellar
from ellar.common import get, Controller, ControllerBase
from ellar.app import AppFactory
import uvicorn
@Controller()
class HomeController(ControllerBase):
@get('/')
async def index(self):
return {'message': 'Welcome to Ellar Framework!'}
app = AppFactory.create_app(controllers=[HomeController])
if __name__ == "__main__":
uvicorn.run("main:app", port=5000, reload=True)
from ellar.common import Body, Controller, ControllerBase, delete, get, post, put, Serializer
from ellar.di import injectable, request_scope
from ellar.app import AppFactory
from pydantic import Field
# Define Data Model
class CreateCarSerializer(Serializer):
name: str
year: int = Field(..., gt=0)
model: str
# Define Service
@injectable(scope=request_scope)
class CarService:
def __init__(self):
self.detail = 'car service'
# Define Controller
@Controller
class CarController(ControllerBase):
def __init__(self, service: CarService):
self._service = service
@post()
async def create(self, payload: Body[CreateCarSerializer]):
result = payload.dict()
result.update(message='Car created successfully')
return result
@get('/{car_id:str}')
async def get_one(self, car_id: str):
return f"Retrieved car #{car_id}"
app = AppFactory.create_app(
controllers=[CarController],
providers=[CarService]
)
We welcome contributions! Hereβs how you can help:
See CONTRIBUTING.md for detailed guidelines.
Ellar is MIT Licensed.
Ezeudoh Tochukwu @eadwinCode