mORMot 2: a Delphi and Free Pascal toolbox that grows into an ORM and SOA framework
The Ultimate OpenSource RTL / ToolBox for Delphi and FreePascal
At a glance
- What is it?
- Synopse mORMot 2 is a single Pascal framework that starts as an optimized runtime library and keeps going: JSON and RTTI kernel, cryptography, a full network layer, direct database access, an ORM, REST services and a web MVC layer. It targets Delphi 7 through the newest releases and FPC, under a disjunctive MPL, GPL or LGPL licence.
- Who is it for?
- mORMot 2 fits a Pascal team that needs a full server stack in one dependency: database access, an ORM, REST and WebSocket services, cryptography and a web layer, without a package manager pulling in forty libraries. It does not fit a team that wants a small focused ORM, or a shop where copy-left is not an option without reading the licence terms carefully, since the MPL, GPL and LGPL are all on the table.
- Can I use it commercially?
- Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
- Is it still maintained?
- Yes. The repository received new commits within the last day.
- What is it written in?
- Mainly Pascal, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
One framework that starts small and never stops
Synopse mORMot 2 is presented as the ultimate open source toolbox in modern Object Pascal, and the self-description is precise about the ambition: a fully featured optimized RTL that goes on to be a client-server ORM, SOA and MVC framework, for Delphi 7 up to the latest revision and FPC 3.2 or trunk. The feature list explains why people describe it as a toolbox rather than a framework. The base layer is an optimized cross-compiler and cross-platform JSON, UTF-8 and RTTI kernel. On top of that sit complete cryptography primitives covering hashes, encryption, asymmetric keys, X.509, PKI and OpenSSL, and a full client and server network layer with HTTP and HTTPS, WebSockets, OpenAPI and Swagger, async servers, LDAP, DNS, ACME, TFTP, DHCP and cached proxies. Then direct SQL and NoSQL database access for SQLite3, PostgreSQL, Oracle, MSSQL, OleDB, ODBC and MongoDB, an ORM and ODM layer, a REST router, a web MVC layer and a long tail of reusable pieces for Unicode, threading, logging, binary serialization, variants and PDF generation.
A disjunctive licence gives you MPL, GPL or LGPL
The licensing is unusual enough to be worth reading carefully. The framework is offered under a disjunctive three-licence scheme, and you pick one of three sets of terms: the Mozilla Public License version 1.1 or later, the GNU General Public License version 2.0 or later, or the GNU Lesser General Public License version 2.1 or later. The stated reasoning is that this allows use in as wide a variety of software projects as possible while still keeping copy-left on the code the author wrote. In practice this means you can drop mORMot into a proprietary application under the MPL or the LGPL terms, or use it under the GPL if your project is already copy-left. The full terms live in the LICENCE.md file, and note that GitHub itself reports the repository licence as one it cannot classify, so the file is the authority rather than the badge. The copyright runs 2008 to 2026 Synopse Informatique, with Arnaud Bouchez named as the author.
Compiling it: the static binaries are a separate download
There is no package manager step, because this is a source framework that IDEs consume directly. The installation is a two-part download. You clone the repository, and then you fetch the static library archive separately and unpack it into the static folder of the checkout.
- `git clone https://github.com/synopse/mORMot2.git` into e.g. `c:\github\mORMot2`,
- and download and extract latest https://synopse.info/files/mormot2static.tgz or https://synopse.info/files/mormot2static.7z into `c:\github\mORMot2\static`.The split exists because the static folder holds raw library object files needed for FPC and Delphi static linking, and those binaries are shipped apart from the source. If you prefer a zip of a given release, the same two-part arrangement applies, with the source archive and its matching static archive. After that you point the IDE at the source. On Lazarus you open and compile the mormot2.lpk package, plus mormot2ui.lpk if you need the UI part. On Delphi you create an environment variable named mormot2 holding the full path to the mORMot 2 src directory. The packages folder holds those IDE packages and tools.
The compiler matrix is validated, and one FPC branch matters
The project is explicit about which compilers it checks. The source tries to stay compatible with FPC stable and Delphi 7 upward, and it is currently validated against FPC 3.2.3 on the fixes-3_2 branch, Delphi 7, 2007, 2009, 2010, XE4, XE7, XE8, 10.4, 11.1, 12.2, 12.3, 13.1 and 13.2. Regression tests are built and run nightly from FPC fixes-3_2 up to most versions of Windows 7 through 11, plus several Linux and MacOS distributions on i386, x86_64, arm32 and aarch64. There is one warning to take seriously: FPC 3.2.2 has a regression with variant late binding, so the README says to ensure you use the FPC fixes-3_2 branch. On Windows the primary Delphi target is Windows itself, though since mORMot 2.5 there is preliminary support for the latest Delphi LLVM compilers, with feedback welcome, and non-validated versions are asked about via pull requests.
The repository layout separates framework, tests, samples and docs
The sub-folder structure of the repository is the fastest way to understand the scope. The src directory is the main source folder with the actual framework. The packages directory contains IDE packages and tools to set up the development environment. The static directory holds the raw library object files needed for FPC and Delphi static linking. The test directory defines the regression tests of all framework features, which is a large part of why the project can claim wide compiler coverage. The res directory compiles resources used within src, including the static third-party binaries. There are two documentation directories: doc holds the framework documentation, and docs holds AI-generated documentation. The ex directory contains various samples, and the README points at the samples folder, the Thomas Tutorials and the source code itself as places to learn from. The older mORMot 1 documentation is still linked, since the design and conceptual parts largely still apply to version 2.
Version 2 replaced version 1, and 1 is in maintenance only
The notice in the README is unambiguous: this version 2 replaces mORMot 1.18, which is now in maintenance-only mode, and the author suggests considering mORMot 2 for any new or maintainable project. The release tags follow a scheme of major dot stable, so the listed releases are 2.4 stable on 2026-01-12, 2.3 stable on 2024-10-16 and 2.2 stable on 2024-01-02. That gives a release cadence of roughly one stable per year, which is slow by comparison with most frameworks but reasonable for a library with a decade of users and a wide compiler matrix. The repository is not archived and the last push was on 2026-10-16, so the code is moving even between stable tags. A CHANGELOG.md is at the root, along with a DONATE.md for sponsorship, a CONTRIBUTORS.md, a SECURITY.md and a commit.sh helper.
Where it fits and where it does not
The README lists the intended uses and they span a wide range. You can use it to add basic ORM or client-server features to a simple application as a hobbyist, or let experienced users build scalable service-based domain-driven projects for customers, or use FPC cross-platform reach with an existing Delphi codebase, or simply to see modern Object Pascal challenge current languages and frameworks. The limitation that follows from the same breadth is scope. This is not a small library with a narrow API. A team that wants a small ORM for a handful of tables and nothing else will find a great deal here that it does not need, and the framework's own README points out the size of the surface by listing it. It is also a project maintained primarily by one company with a wide contributor list, so roadmap direction is largely one person's, and the discussion groups on Telegram and Discord are run by users rather than by Synopse, as the README is careful to state.
Editorial conclusion
mORMot 2 fits a Pascal team that needs a full server stack in one dependency: database access, an ORM, REST and WebSocket services, cryptography and a web layer, without a package manager pulling in forty libraries. It does not fit a team that wants a small focused ORM, or a shop where copy-left is not an option without reading the licence terms carefully, since the MPL, GPL and LGPL are all on the table. Verify first that your compiler version is on the validated list, use the FPC fixes-3_2 branch rather than 3.2.2 because of the variant late binding regression, and read LICENCE.md to pick which of the three licences you are actually using.
Frequently asked questions
How do I install mORMot 2?
The README describes a two-part install: clone the repository with git clone https://github.com/synopse/mORMot2.git, then download and extract the mormot2static.tgz or mormot2static.7z archive into the static folder of the checkout. Then on Lazarus you compile the mormot2.lpk package, and on Delphi you create an environment variable named mormot2 pointing at the src directory.
Which compilers does mORMot 2 support?
The README says the source tries to stay compatible with FPC stable and Delphi 7 upward, and is currently validated against FPC 3.2.3 on the fixes-3_2 branch and Delphi 7, 2007, 2009, 2010, XE4, XE7, XE8, 10.4, 11.1, 12.2, 12.3, 13.1 and 13.2. It warns that FPC 3.2.2 has a variant late binding regression.
What licence does mORMot 2 use?
It is offered under a disjunctive three-licence scheme where you choose one: the Mozilla Public License version 1.1 or later, the GNU General Public License version 2.0 or later, or the GNU Lesser General Public License version 2.1 or later. The full terms are in the LICENCE.md file.
Should I use mORMot 1 or mORMot 2?
The README states that version 2 replaces mORMot 1.18, which is now in maintenance-only mode, and suggests using mORMot 2 for any new or maintainable project. The old documentation is still linked because its design and conceptual parts largely still apply.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/synopse-mormot2)Was this useful?