https://github.com/danieleteti/delphimvcframework
DMVCFramework (for short) is a popular and powerful framework for WEB API in Delphi. Supports RESTful and JSON-RPC WEB APIs development.
https://github.com/danieleteti/delphimvcframework
api application-server delphi delphimvcframework json-rpc jsonwebtoken jwt jwt-authentication native object-pascal pascal rest restful restful-api restful-webservices serialization-library speed
Last synced: 5 months ago
JSON representation
DMVCFramework (for short) is a popular and powerful framework for WEB API in Delphi. Supports RESTful and JSON-RPC WEB APIs development.
- Host: GitHub
- URL: https://github.com/danieleteti/delphimvcframework
- Owner: danieleteti
- License: apache-2.0
- Created: 2015-05-28T12:08:43.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2024-05-23T09:02:04.000Z (about 2 years ago)
- Last Synced: 2024-05-23T09:25:41.838Z (about 2 years ago)
- Topics: api, application-server, delphi, delphimvcframework, json-rpc, jsonwebtoken, jwt, jwt-authentication, native, object-pascal, pascal, rest, restful, restful-api, restful-webservices, serialization-library, speed
- Language: Pascal
- Homepage:
- Size: 278 MB
- Stars: 1,195
- Watchers: 166
- Forks: 345
- Open Issues: 41
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: License.txt
- Roadmap: roadmap.md
Awesome Lists containing this project
- awesome-pascal - DMVCFramework
- awesome-htmx - DelphiMVCFramework - DelphiMVCFramework integration support for htmx (class helper in MVCFramework.HTMX) (Tools)
README
**Table of Contents**
- [DelphiMVCFramework](#delphimvcframework)
- [🚀 Quick Links](#-quick-links)
- [🎯 Key Features](#-key-features)
- [🏗️ **Architecture & Framework**](#-architecture--framework)
- [🔐 **Security & Authentication**](#-security--authentication)
- [💾 **Data Access & ORM**](#-data-access--orm)
- [🌐 **Web & API Features**](#-web--api-features)
- [📊 **Data Serialization**](#-data-serialization)
- [🛠️ **Development & Deployment**](#-development--deployment)
- [🖥️ **Platform Support**](#-platform-support)
- [Delphi Versions](#delphi-versions)
- [Operating Systems](#operating-systems)
- [Deployment Targets](#deployment-targets)
- [🔒 **Security & TLS 1.3 Support**](#-security--tls-13-support)
- [🏁 **Quick Start**](#-quick-start)
- [📚 **Learning Resources**](#-learning-resources)
- [📖 **Official Guide**](#-official-guide)
- [🎓 **Training & Support**](#-training--support)
- [🤝 **Community & Support**](#-community--support)
- [💬 **Get Help**](#-get-help)
- [🎯 **Support the Project**](#-support-the-project)
- [👥 **Contributors**](#-contributors)
- [🏆 **Success Stories**](#-success-stories)
- [🏢 **Sponsors**](#-sponsors)
- [📄 **License**](#-license)
- [🔗 **Quick Navigation**](#-quick-navigation)
# DelphiMVCFramework
[](https://github.com/danieleteti/delphimvcframework/releases)
[](https://deepwiki.com/danieleteti/delphimvcframework)
[](https://github.com/sindresorhus/awesome)


**The most popular Delphi RESTful framework on GitHub**
DelphiMVCFramework is a powerful, open-source framework for building RESTful services, JSON-RPC APIs, and web applications with Object Pascal. It provides a complete MVC architecture with built-in ORM, authentication, TLS 1.3 support and extensive middleware support.
## 🚀 Quick Links
- **[📖 Official Guide](http://www.danieleteti.it/books/)** - Comprehensive documentation and tutorials
- **[⚡ Quick Start Guide](docs/quickstart_guide.md)** - Get up and running in 5 minutes
- **[📦 Installation](docs/installation_guide.md)** - Step-by-step installation instructions
- **[🎯 Samples](docs/samples_guide.md)** - 40+ examples covering all features
- **[📝 Changelog](docs/changelog.md)** - Version history and release notes
## 🎯 Key Features
### 🏗️ **Architecture & Framework**
- **RESTful compliant** (Richardson Maturity Model Level 3)
- **JSON-RPC 2.0 support** with automatic object remotization
- **MVC pattern implementation** with controller inheritance
- **Middleware system** for request/response processing
- **Dependency injection** support
- **Domain modeling first** approach
### 🔐 **Security & Authentication**
- **JWT (JSON Web Token)** authentication and authorization
- **HTTP Basic Authentication** support
- **Custom authentication** mechanisms
- **CORS (Cross-Origin Resource Sharing)** handling
- **TLS 1.3 support** for secure communications
- **JWT Blacklist middleware** for token revocation
### 💾 **Data Access & ORM**
- **MVCActiveRecord** - Powerful ORM with full CRUD operations
- **Multi-database support**: PostgreSQL, MySQL, MariaDB, Firebird, InterBase, SQLite, Microsoft SQL Server
- **RQL (Resource Query Language)** for flexible querying
- **Named queries** support for optimized database access
- **Connection pooling** and transaction management
- **Automatic entity generation** from database schema
### 🌐 **Web & API Features**
- **WebSocket support** for real-time bidirectional communication (server & client)
- **Content negotiation** with multiple MIME types
- **Server-Side Views** with Mustache and TemplatePro support
- **Static file serving** middleware
- **File upload/download** handling
- **Server-Sent Events (SSE)** for real-time updates
- **HATEOAS** (Hypermedia as the Engine of Application State) support
- **OpenAPI/Swagger** documentation generation
- **Compression** support (gzip, deflate)
- **Rate limiting** with in-memory and Redis-backed implementations
### 📊 **Data Serialization**
- **Flexible JSON serialization/deserialization**
- **Custom serializers** for complex types
- **Nullable types** support
- **Dataset to JSON** conversion
- **Multiple naming conventions** (camelCase, PascalCase, snake_case, etc.)
- **Attribute-based** field mapping
### 🛠️ **Development & Deployment**
- **IDE Wizard** for project creation
- **Comprehensive logging** with LoggerPro integration
- **Built-in profiler** for performance monitoring
- **Unit testing framework** (250+ tests)
- **dotEnv configuration** support
- **Multiple deployment options**: Standalone, Apache module, IIS ISAPI, Linux daemon
## 🖥️ **Platform Support**
### Delphi Versions
- **Delphi 13 Florence** ✅
- **Delphi 12.x Athens** ✅
- **Delphi 11.x Alexandria** ✅
- **Delphi 10.4 Sydney** ✅
- **Delphi 10.3 Rio** ✅
- **Delphi 10.2 Tokyo** ✅
- **Delphi 10.1 Berlin** ✅
- **Delphi 10 Seattle** ✅
### Operating Systems
- **Windows** (32-bit and 64-bit)
- **Linux** (64-bit)
- **Android** (experimental support)
### Deployment Targets
- Console Applications
- Windows Services
- Linux Daemons
- Windows VCL Applications
- Windows or Linux FMX Applications
- Apache Modules (Windows/Linux)
- IIS ISAPI Extensions (Windows)
## 🔒 **Security & TLS 1.3 Support**
DelphiMVCFramework provides enterprise-grade security features including full **TLS 1.3 support**. The framework automatically negotiates the highest available TLS version and provides:
- **Perfect Forward Secrecy** with modern cipher suites
- **Certificate validation** and custom certificate handling
- **SNI (Server Name Indication)** support for multiple SSL certificates
- **HTTP Strict Transport Security (HSTS)** headers
- **Secure cookie** handling with SameSite attributes
- **CSRF protection** mechanisms
TLS 1.3 brings significant security and performance improvements, including faster handshakes and stronger encryption algorithms. DelphiMVCFramework leverages these improvements automatically when deployed in compatible environments.
## 🏁 **Quick Start**
Here's how a simple DMVCFramework controller looks like:
```pascal
// 1. Create a controller
[MVCPath('/api/hello')]
TMyController = class(TMVCController)
public
[MVCPath('/world')]
[MVCHTTPMethod([httpGET])]
function HelloWorld: TMyObject;
end;
// 2. Implement the action
function TMyController.HelloWorld: TMyObject;
begin
Result := TMyObject.Create('Hello World!');
end;
// 3. Register and start server elsewhere
FMVC := TMVCEngine.Create(Self);
FMVC.AddController(TMyController);
```
**[👉 See full Quick Start Guide](docs/quickstart_guide.md)**
## 📚 **Learning Resources**
### 📖 **Official Guide**
The comprehensive **"DelphiMVCFramework - The Official Guide"** is available in multiple languages:
- [🇬🇧 English](https://leanpub.com/delphimvcframework) (eBook & Hardcover)
- [🇧🇷 Portuguese](https://leanpub.com/delphimvcframework-br)
- [🇪🇸 Spanish](https://leanpub.com/delphimvcframework-es)
### 🎓 **Training & Support**
- **Professional Training**: Available through [bit Time Professionals](https://www.bittimeprofessionals.it) (world wide) and [Delphi Studio ES](https://www.delphistudio.es) (in Spain)
- **Consultancy Services**: Custom development and technical support available through [bit Time Professionals](https://www.bittimeprofessionals.it) (world wide) and [Delphi Studio ES](https://www.delphistudio.es) (in Spain)
- **Community Support**: [Facebook Group](https://www.facebook.com/groups/delphimvcframework) (6000+ members)
## 🤝 **Community & Support**
### 💬 **Get Help**
- [Facebook Group](https://www.facebook.com/groups/delphimvcframework) - Active community with 6000+ members
- [GitHub Issues](https://github.com/danieleteti/delphimvcframework/issues) - Bug reports and feature requests
- [GitHub Discussions](https://github.com/danieleteti/delphimvcframework/discussions) - General questions and discussions
### 🎯 **Support the Project**
- ⭐ **Star this repository** - Help others discover DMVCFramework
- 🐛 **Report bugs** - Help improve the framework
- 📝 **Contribute documentation** - Share your knowledge
- 💰 **[Become a Patron](https://www.patreon.com/delphimvcframework)** - Access to premium contents, videos, article etc. reserved to supporters
## 🏆 **Success Stories**
> *"DMVCFramework is a great framework. It's very intuitive, fast, easy to use, actually there is nothing more to ask for."* - Samir
> *"I'm still amazed by the DelphiMVCFramework code and documentation. Thank you very much and I am amazed by your quick feedback."* - [Benjamin Yang](https://www.linkedin.com/in/benjamin-yang-4b0609159/), Director of SQLGate
> *"We started the process of migrating our systems to micro services and are loving the DMVCFramework."* - E. Costa
## 🏢 **Sponsors**
DelphiMVCFramework is proudly sponsored by:
| Gold Sponsors |
|---|
| [bit Time Professionals](https://www.bittimeprofessionals.com) |
| [bit Time Software](https://www.bittime.it) |
| Silver Sponsors |
|---|
| [Centro Software](https://www.centrosoftware.com) |
| [Delphi Studio ES](http://www.delphistudio.es) |
| [Orion Law](https://orionlaw.com/) |
| [Vivaticket](https://www.vivaticket.com/) |
## 📄 **License**
DelphiMVCFramework is released under the Apache License 2.0. See [LICENSE](LICENSE) file for details.
## 🔗 **Quick Navigation**
| Documentation | Community |
|---|---|
| [Quick Start](docs/quickstart_guide.md) | [Facebook Group](https://www.facebook.com/groups/delphimvcframework) |
| [Installation](INSTALLATION.md) | [GitHub Discussions](https://github.com/danieleteti/delphimvcframework/discussions) |
| [Samples](SAMPLES.md) | [X](https://x.com/danieleteti) |
| [RQL Guide](RQL.md) | [Blog](https://www.danieleteti.it) |
| [dotEnv](DOTENV.md) | |
---
**Made with ❤️ by [Daniele Teti](https://www.danieleteti.it) and the [community](https://github.com/danieleteti/delphimvcframework/graphs/contributors)**