Skip to main content

**Duck** is a powerful, open-source, full-fledged Python-based **web server**, **framework**, and **reverse proxy** designed for building modern, customizable web applications — from small sites to large-scale platforms.

Project description

Duck Framework

Duck image

Python 3.10+ GitHub stars GitHub forks License Build Status Open Issues Contributors HTTPS HTTP/2 WebSocket Async Views Task Automation Content Compression SSL Auto-Renewal Resumable Downloads Security DuckSight Hot Reload Django Integration Monitoring

Duck is a powerful, open-source, full-fledged Python-based web server, framework, and reverse proxy designed for building modern, customizable web applications — from small sites to large-scale platforms.

It simplifies web development with:

  1. Built-in HTTPS support for secure connections
  2. Native HTTP/2 support with HTTP/1 backward compatibility link
  3. Hassle-free free SSL certificate generation with automatic renewal link
  4. Lively Component System — with VDom Diffing (support for fast UI's)
  5. WebSocket support — modern websocket implementation with per-message compression.
  6. Built-in task automation — no need for cron jobs
  7. Automatic content compression using gzip, deflate or brotli
  8. Support for chunked transfer encoding
  9. Easy integration with existing Django projects using django-add
  10. Organized routing with Duck Blueprints
  11. Full support for async views or asynchronous code even in WSGI environment
  12. Dynamic project generation with makeproject (mini, normal, or full)
  13. Runs on both WSGI and ASGI environments, can even run async protocols like HTTP/2 or WebSockets on WSGI.
  14. High-performance with low-latency response times
  15. Resumable downloads for large files
  16. Protection against DoS, SQL Injection, Command Injection, and other threats
  17. Auto-reload in debug mode for rapid development
  18. Free production SSL — no certificate costs
  19. Automatic SSL renewal using certbot plus Duck automation system
  20. Comes with built-in web development tools and helpers
  21. Log management with duck logs and file-based logging by default
  22. Real-time system monitoring for CPU, RAM, Disk usage, and I/O activity with duck monitor
  23. Easily generate app sitemap using command duck sitemap or just use the builtin blueprint duck.etc.apps.essentials.blueprint.Sitemap for dynamic cached sitemap serving.
  24. Highly customizable to fit any use case

And more — see feature list

Upcoming Features

  1. HTTP/3 with QUIC – Faster, modern transport for improved performance.
  2. QUIC WebTransport – A next-gen alternative to WebSockets for real-time communication.
  3. Component Pre-rendering System – A system to preload components in the background thread to reduce initial load times of component trees.
  4. Customizable Dashboards – Tailor interfaces to your workflow and preferences.
  5. MQTT (Message Queuing Telementry Transport) Integration – Run your own broker and manage IoT devices with ease.
  6. Duck WebApp to APK – Easily convert a Duck web application to APK.
  7. DuckSight Hot Reload – Instead of full reload on file changes, implement hot reload for the DuckSight Reloader. This is faster and efficient than full reload.
  8. Internal Updates – Implement logic for listing and securely applying updates when available, utilizing cryptographic code signing (using standards like TUF) to verify GitHub-sourced updates, protecting against rollbacks, and man-in-the-middle exploits.
  9. Worker Processes – Use of worker processes to utilize all available CPU cores for improved request handling.
  10. Complete Reverse Proxy ServerDuck only acts as reverse proxy for Django only. Need to make Duck a full-fledged reverse proxy server with optional sticky sessions.
  11. Component Mutation Observer – Need to build an optional component mutation observer for keeping track of child changes for fastest re-render (approx. 75x fast on unchanged children).
  12. MCP (Model Context Protocol) Server – Need to make it easy for creating MCP servers for easy AI communication.
  13. ...and moreRequest a feature

TODO:

  • Need to cythonize some of the project parts for improved speed esp., components.
  • Need to make Duck fully async, especially in component & templates (currently at 89% async compatible, need to enable strictness for component rendering in async mode).

🦆 Fun Facts

  • The Duck official website is powered by the Duck framework itself—showcasing a true "dogfooding" approach!
  • Duck's Lively components bring you a Lively UI that's exceptionally fast and responsive, eliminating slow page re-rendering for a seamless user experience.
  • Also, Duck official site is hosted directly with Duck itself, no NGINX or a reverse proxy is behind it. Duck handles everything including renewing expired SSL certificate & handle HTTP/2 protocol!

Getting Started

It is recommended to use uv for installing Duck.

Install Duck using uv:

uv pip install git+https://github.com/duckframework/duck.git

Or using original pip:

pip install git+https://github.com/duckframework/duck.git

Project Creation

duck makeproject myproject

This creates a normal project named myproject. You can also create other project types using:

  • --full for a full-featured project
  • --mini for a simplified starter project

Full Project

The full version includes everything Duck offers. Recommended for experienced developers.

duck makeproject myproject --full

Mini Project

Beginner-friendly. Lightweight version with essential functionality.

duck makeproject myproject --mini

Simple Startup

duck makeproject myproject
cd myproject
duck runserver   # or: python3 web/main.py

This starts the server at http://localhost:8000

Duck serves a basic site by default — explore more at Documentation

By default, Duck compresses streaming responses (like large downloads or video).
To disable this behavior, set compress_streaming_responses to False.


Django Integration

If you have an existing Django project and want production features like HTTPS, HTTP/2, and resumable downloads, Duck makes it easy.

Unlike nginx setups, Duck simplifies this with a few commands.

Benefits

  • Native HTTP/2 & HTTPS implementation.
  • Extra built-in security middleware (DoS, SQLi, etc.)
  • Duck and Django run in the same Python environment (faster communication)
  • Auto-compressed responses
  • Resumable large downloads
  • Fast and Reactive Lively components - for beautiful & responsive UI.
  • Free SSL with renewal
  • and more

Usage

duck makeproject myproject
cd myproject
duck django-add "path/to/your/django_project"
duck runserver -dj

Notes:

  • Follow instructions provided by django-add command carefully
  • Make sure your Django project defines at least one urlpattern
  • Once setup, you’re good to go!

Duck Official Site

Visit: https://duckframework.xyz
Docs: https://docs.duckframework.xyz


🚀 Premium Duck Components Coming Soon!

All our UI components are currently free and open source. Stay tuned for upcoming Pro Packs featuring advanced dashboards, e-commerce, and integrations!

⭐ Star this repo to get notified on release!

Contributing & Issues

Duck is open to all forms of contribution — financial or technical.

Sponsorship/Donations:

Support development at Open Collective

Report issues:

Use the GitHub Issues page


Duck is updated regularly — check the repo for improvements and bug fixes.

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

duckframework-1.0.1.tar.gz (2.0 MB view details)

Uploaded Source

Built Distribution

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

duckframework-1.0.1-py3-none-any.whl (2.1 MB view details)

Uploaded Python 3

File details

Details for the file duckframework-1.0.1.tar.gz.

File metadata

  • Download URL: duckframework-1.0.1.tar.gz
  • Upload date:
  • Size: 2.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for duckframework-1.0.1.tar.gz
Algorithm Hash digest
SHA256 0b6d409206fe5c02748b7b4cd66951902c4307d59cb0a1ecc386365fb9eea7a7
MD5 0ec638758de294d16fbc6803dd7dc5b1
BLAKE2b-256 e25214d6813b74a33e068f1652b4e61a9f3cea4d7a7dee926a53108fdb289654

See more details on using hashes here.

Provenance

The following attestation bundles were made for duckframework-1.0.1.tar.gz:

Publisher: pypi-publish.yml on duckframework/duck

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file duckframework-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: duckframework-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 2.1 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for duckframework-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 624ab2aaf676059dc38c1dbb82852b96e09e71086deb3b1e2107214ed7ef926d
MD5 70b10f0c1afcc4650d9328ac1b1ac45c
BLAKE2b-256 cb8b05b13fe2b7b24d145cdf6596f9198c1cacba9c78a7556bbb6a1b52ce694f

See more details on using hashes here.

Provenance

The following attestation bundles were made for duckframework-1.0.1-py3-none-any.whl:

Publisher: pypi-publish.yml on duckframework/duck

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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