Features

Take a look at the features we guarantee!

Modular & Reusable Components

Provides live reusable Lively components, blueprints for route organization, and a versatile template engine supporting Jinja2 and Django templates.

Automation & Task Management

Includes task automation, logging options, and utilities for streamlining workflows and simplifying repetitive tasks.

Technology & IT Solutions

Offers a modern, robust stack with HTTP/2 support, WebSockets integration, micro app architecture, Lively component system and enhanced security, ensuring seamless development, deployment, and long-term maintainability.

Django Integration

Effortlessly connect with Django projects.

Business Scalability & Growth

Designed to help businesses scale their web applications efficiently, optimize resource utilization, and improve system performance for higher profitability.

Security & Compliance

Includes HTTPS & SSL certificate management, built-in security layers, free SSL certificate generation and compliance-friendly features to ensure safe and secure web applications.

Performance Optimization

Supports native content compression (gzip, Brotli, deflate), streaming responses, built-in caching, and live reloading for efficient performance and faster load times.

Micro App Support

Enables lightweight, independent sub-applications with their own servers and ports, facilitating microservices architecture.

Flexible Request Handling

Supports ASGI and WSGI for efficient request processing.

Developer Utilities

Comes with a range of helper functions in duck.utils, including URL parsing, request parameter handling, and port management, making development smoother.

See More on Github

See more features listed on our Github repository.

See how easy it is to get started

Example App

#!/usr/bin/env python # Main py script for application creation and execution. from duck.app import App app = App(port=8000, addr="127.0.0.1", domain="localhost") if __name__ == "__main__": app.run()

Explanation

  • App object: Initializes the app with a specified port (8000), address (127.0.0.1), and domain (localhost).

  • app.run(): Starts the application on the defined address and port.

  • if __name__ == "__main__": Ensures the app runs only when this script is executed directly.

Example URLs

# urls.py from duck.urls import path async def home(request): return "Hello from async!" def about(request): return "Hello from sync!" urlpatterns = [ path("/", home, name="home"), path("/about", about, name="about") ]

Explanation

  • path(): Defines a URL pattern and maps it to a view.

  • home(), about(): View functions (or class-based views) that handle incoming requests. You can subclass duck.views.View for class-based views.

  • urlpatterns = [...]: A list of all route definitions to be handled by the application.

Lively Component System

Lively Component System — a real-time, component-based system that enables responsive page updates without full reloads. It leverages WebSockets with msgpack for fast communication and supports navigation to new URLs without full page reloads.

No need for React, Vue or HTMX — Duck is enough.

Lively Counter App

About

Duck Framework is an innovative web server and framework designed to enhance web development by combining performance, security, and flexibility. Built with modern web technologies in mind, it simplifies the process of creating scalable, secure, and highly customizable web applications.

Our mission is to provide developers with a robust, efficient, and easy-to-use framework that integrates seamlessly with Django, supports microservices, and offers built-in tools for automation, templating, and HTTPS management.

With features such as Duck MicroApp, Lively Component System, enhanced logging, Reusable Lively components, and DuckSight Reloader for live reloading, Duck Framework empowers developers to build powerful applications with minimal configuration.

Join us in shaping the future of web development with Duck Framework!

Why choose Duck

Sponsors

Do you want your logo to appear here?