Modular & Reusable Components
Reusable Lively components, blueprints, and versatile template engine support for Jinja2 and Django.
Automation & Task Management
Task automation, logging, and utilities for streamlining workflows.
Micro App Support
Lightweight, independent sub-applications with their own servers and ports, enabling microservices architecture.
Flexible Request Handling
Supports dual connection modes (keep-alive & close), threading, and async handling.
Django Integration
Effortlessly connect with Django projects.
High Performance
Helping businesses scale, optimize operations, and improve profitability.
HTTP/2 Support
Supports HTTP/2 for enhanced security and performance for seamless development.
Security & Compliance
Features HTTPS & SSL, security layers, and compliance-friendly features for safe web applications.
Performance Optimization
Includes content compression (gzip, Brotli), streaming responses, built-in caching, and live reloading.
Developer Utilities
Provides utilities for URL parsing, request handling, and port management.
Business Strategy & Growth
Helping businesses scale, optimize operations, and improve profitability.
Features
- Quick Setup
- Modular & Reusable Components
- Automation & Task Management
- Micro App Support
- Flexible Request Handling
- Django Integration
- High Performance
- HTTPS & SSL Support
- HTTP/2 Support
- Security & Compliance
- Performance Optimization
- Developer Utilities
- Business Scalability & Growth
Quick Setup
Get your Duck application up and running quickly with minimal configuration.
Benefits:
- Simplified Installation: Install Duck using
pip. - Project Generation: Create new projects with
duck makeproject myproject. - Minimal Configuration: Start development with minimal configuration in
settings.py. - Faster Development: Start coding without lengthy setup processes.
- Reduced Complexity: Simplify your development workflow.
- Ease of Use: Get your project running with simple commands.
- Improved Logging: Better logs by default with automatic logging to file.
- Logs Management: Manage logs easily with
duck logs .... - Improved Monitoring: Monitor Duck processes with
duck monitor .... - Django Integration: Easily integrate an existing Django project with
duck django-add path/to/my/django/project. - Duck Linux Service: Easily start Duck application as a service on Linux platforms with
duck service ....
Example:
duck makeproject myproject
cd myproject
duck runserver # Or python3 web/main.py
Modular & Reusable Components
Duck promotes modularity and reusability for efficient development.
Benefits:
- Reusable Lively HTML Components: Create custom
LivelyHTML components with lively updates (no need for fullpage reloads). - Blueprints: Organize routes with blueprints for better project management.
- Template Engine Compatibility: Supports
Jinja2andDjangotemplates. - Code Reusability: Reduce code duplication.
- Organized Structure: Keep your project organized.
- Flexibility: Use preferred template engines.
Automation & Task Management
Duck offers powerful automation capabilities that can run tasks throughout your application's lifecycle. With Duck automations, you can schedule tasks to run when specific triggers occur, or you can set them up to run automatically at specified times.
These automations are incredibly useful for a variety of purposes, such as:
- Automatically generating SSL certificates 🔒
- Handling routine maintenance tasks 🛠️
- Managing scheduled backups ⏳
- Scheduling emails ✉️
- Cleaning logs and junk at intervals 🗑
- Triggering notifications or other actions based on specific events 📲
By leveraging Duck's automation system, you can save time, reduce manual intervention, and ensure critical tasks are handled efficiently and reliably.
Duck provides tools for automation and task management.
Benefits:
- Task Automation: Schedule tasks to run at specific times or triggers.
- Streamlined Workflows: Automate repetitive tasks.
- Improved Productivity: Enhance development efficiency.
Micro App Support
Duck framework supports micro-apps for building scalable and independent applications.
What is a Micro App?
A Micro App is a small, independent application that runs on its own server (HTTP or HTTPS) and port. It can be part of a larger Duck-powered project but operates separately, handling its own requests and responses.
Benfits:
- Independent Servers: Each micro app runs on its own server, meaning it does not affect other parts of the application.
- Custom Ports: You can assign a specific port for your micro app, so it won’t interfere with other services.
- Custom Views: Micro apps handle their own requests through a
viewmethod (orasync_viewin asynchronous environment), allowing you to define custom behavior. - Redirect HTTP to HTTPS: Duck includes a built-in HttpsRedirectMicroApp, which automatically redirects HTTP traffic to HTTPS for better security.
- Scalability: Build microservices architecture.
- Flexibility: Handle different parts of the application independently.
- Isolation: Prevent issues from affecting other parts of the application.
Flexible Request Handling
Duck offers flexible request handling for diverse application needs.
Benefits:
- Dual Connection Modes: Supports keep-alive and close connection modes.
- Threading & Async Handling: Supports both threading and asynchronous handling.
- ASGI & WSGI Support: Supports both
ASGIandWSGIenvironments. Also, in WSGI environment, Duck uses a background event loop for handling asynchronous protocols like HTTP/2 or WebSockets without the need of switching toASGI. - Customizable Handling: Tailor request handling to suit your needs.
- Native WebSockets: Duck has native
WebSocketsimplementation which doesn't require external libraries. Another great thing is thatWebSocketscan easily run inWSGI, no need to strictly useASGI.
Django Integration
Duck provides seamless integration with Django (another great framework), allowing you to leverage the power of both frameworks.
Benefits:
- Interoperability: Easily use Django's ORM and features within your Duck application.
- Flexibility: Combine Django's robust features with Duck's performance and customization.
- Simplified Development: Streamline your workflow by using the best of both worlds.
- Security: Enhanced security through layered middleware.
How it Works:
Duck forwards HTTP traffic to the Django server for handling when
USE_DJANGO = Trueinsettings.py. This allows Django to handle requests on Duck's behalf.
High Performance
Duck is designed for high performance, ensuring your web applications are fast and responsive.
Benefits:
- Efficient Architecture: Duck's architecture is built considering asynchronous handling and efficient resource utilization, minimizing overhead.
- Asynchronous Handling: Duck supports asynchronous handling for I/O-bound tasks, allowing it to handle many concurrent requests efficiently.
- Resource Optimization: Duck optimizes resource usage through features like content compression (gzip, Brotli, deflate) and built-in caching implementations.
- Fast Page Navigation: This framework supports partial page navigation through Duck's Lively Component System (No need to reload the whole page for a small UI update.)
- Scalability: Handle more requests with fewer resources.
- Faster Load Times: Improve user experience with quick response times due to support of protcols like
HTTP/2. - Reduced Latency: Minimize delays for a smoother user experience due to default content compression.
HTTPS & SSL Support
Duck makes it easy to secure your web applications with HTTPS and SSL.
Benefits:
- Built-in SSL Generation: The
duck ssl-gencommand generates self-signed SSL certificates for development and testing. - Automatic HTTPS Redirection:
FORCE_HTTPS = Trueinsettings.pyautomatically redirects all HTTP traffic to HTTPS. - Secure Configuration: Duck provides default secure configurations, and you can customize SSL settings in
settings.py. - Automatic Free SSL Generation: Besides using self-signed SSL certificates, Duck provides an automation for getting, managing and updating
an SSL certificate from Let's Encrypt using
certbot(No need to buy SSL certificate). - Enhanced Security: Protect sensitive data with encrypted connections.
- Improved Trust: Build user confidence with secure connections.
- SEO Benefits: Boost your search engine rankings.
Example:
To enable HTTPS, set ENABLE_HTTPS = True in settings.py.
To generate a self-signed certificates, run:
duck ssl-gen
To force HTTPS redirection:
# settings.py
FORCE_HTTPS = True
ENABLE_HTTPS = True
This will redirect the unencrypted traffic to a more secure encrypted channel.
Free Production-ready SSL Certificate
Duck provides seamless support for Let's Encrypt SSL certificates with automatic and lifetime renewals using certbot in combination with Duck automation and blueprints.
Obtaining SSL Certificate
To get started, install certbot via pip:
pip install certbot
certbot allows you to request SSL certificates from Let's Encrypt and handles domain verification to ensure you own the domain.
To pass domain verification, Duck uses the
webrootplugin. This plugin works by placing random verification files in a directory that is publicly accessible—similar to serving static files. Follow up on Documentation to know more!
HTTP/2 Support
This framework supports HTTP/2 for faster and more efficient communication.
Improvements:
- Multiplexing: Multiple requests are handled simultaneously over a single connection, reducing latency.
- Header Compression: Header compression reduces overhead, improving efficiency.
- Automatic Upgrade: Duck negotiates HTTP/2 with clients that support it while maintaining backward compatibility with HTTP/1.1.
- Faster Load Times: Improve page load speeds with efficient data transfer.
- Reduced Latency: Minimize delays for a smoother user experience.
- Improved Performance: Enhance overall web application performance.
How to enable:
Set HTTP_2_SUPPORT = True in settings.py.
It's strongly recommended to use HTTP/2 only over HTTPS by setting ENABLE_HTTPS = True.
# settings.py
HTTP_2_SUPPORT = True
ENABLE_HTTPS = True
Security & Compliance
Duck prioritizes security and compliance to protect your applications and data.
Benefits:
- HTTPS & SSL: Duck supports HTTP over secure channel (HTTPS) and SSL certificate generation.
- Security Layers: Duck adds security layers through Django integration and request validation.
- Compliance-Friendly Options: Duck's features aid compliance with security best practices.
- Improved Security: Duck adds better security through built-in security middlewares for against
XSS,CSRF,SQL Injection,Command Injectionand built-inRate-limiting middleware. - Data Protection: Secure sensitive information.
- Regulatory Compliance: Meet industry standards and regulations.
- User Trust: Build confidence with secure applications.
Performance Optimization
Duck includes features to optimize performance and enhance user experience.
Benefits:
- Content Compression: Supports gzip, Brotli, and deflate compression for faster asset delivery.
- Streaming Responses:
StreamingHttpResponseandStreamingRangeHttpResponsefor efficient handling of large files. - Built-in Caching: In-memory, file-based, and database-backed caching implementations.
- Live Reloading: DuckSight Reloader automatically restarts the server on file changes.
- Faster Load Times: Improve page load speeds.
- Efficient Resource Usage: Optimize data retrieval and delivery.
- Improved User Experience: Deliver a smoother and faster experience.
Developer Utilities
The Duck Framework is equipped with a powerful set of tools and utilities designed to make development faster, easier, and more efficient.
It streamlines workflows, enhances productivity, and reduces the complexity of building secure and scalable applications.
Business Scalability & Growth
As Duck seamlessly integrates security, performance, scalability, and flexibility, businesses can expand efficiently while minimizing operational costs.
With built-in HTTPS, HTTP/2 support, intelligent caching, and seamless Django integration, Duck empowers developers to deploy high-performance applications effortlessly. Its streaming capabilities, content compression, and reusable components ensure faster load times and an optimized user experience.
Whether you're building a small startup application or a large-scale enterprise system, Duck provides the efficiency, customization, and security needed to scale without limitations.