Synopse mORMot 1: a Delphi ORM, SOA and MVC framework in frozen mode
Synopse mORMot 1 ORM/SOA/MVC framework - Please upgrade to mORMot 2 !
At a glance
- What is it?
- The first generation of the mORMot framework bundles an ORM, a REST service layer, an MVC web stack and an embedded SpiderMonkey engine for Delphi and Free Pascal. Its own README tells you to use mORMot 2 instead.
- Who is it for?
- mORMot 1 suits an existing Delphi or Free Pascal codebase that already depends on it and needs the SQLite3 static binaries or a targeted bug fix, and its layered structure is still a useful reference for Delphi developers. It does not suit a new project, because the README states the repository is frozen and points to mORMot 2 for anything new or maintainable.
- Can I use it commercially?
- Not without permission. GitHub finds no licence file in the repository, and without a licence all rights are reserved by default: you may read the code but not reuse it. Check the README, or ask the authors, before using it.
- Is it still maintained?
- Yes. The repository last received commits 10 days ago.
- 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 22, 2026, and from our analysis. They are not legal advice.
Editorial analysis
The warning at the top says frozen
The first thing the README says is that this repository is in frozen or maintenance mode, and that only SQLite3 static binaries and important bug fixes will be included in the future. It also notes that the Fossil repository at synopse.info has been disabled after a server failure, which matters because Fossil was the primary history for this project. The instruction that follows is unambiguous: consider using the mORMot2 repository for any new or maintainable project. The header describes the framework as an open source client-server ORM and SOA framework, copyright 2008 to 2026 Synopse Informatique, and the README itself is titled Frozen Mode. The two tagged releases visible are 1.18.4952, labelled the January 2019 release and dated 2019-01-11, and a 1.18.2975 snapshot from 2016, while the repository is not archived and the last push was on 2026-10-13. So the code is still touched, but the published version line is old.
Four concerns in one framework
The framework bundles four things. The first is an ORM and ODM, meaning object persistence on almost any database, SQL or NoSQL. The second is SOA, organising business logic into REST services. The third is client access, so data and services can be consumed from any platform through the ORM and SOA APIs. The fourth is web MVC, publishing that ORM and SOA process as responsive web applications. The README argues this is not an ORM with a transmission layer bolted on, as it claims is the case for almost everything existing in Delphi, C# or Java, but a full client-server ORM and SOA built from the ground up. The consequence for a reader is that the parts are designed to work together, with the ORM participating in a layered architecture rather than being isolated behind a persistence interface.
A database list that explains the unit naming
The persistence layer is where the repository layout tells the story, because each unit in the root is a database or a capability. There are units for Oracle, PostgreSQL, Firebird, ODBC, OleDB, ZEOS, MongoDB, a dataset layer, remote access and a SQLite3 kernel, alongside the VCL and FireDAC style dataset providers. The README describes the persistence options as direct access to Oracle, MS SQL, OleDB, ODBC, ZEOS or ZDBC, or any TDataSet provider such as FireDAC, AnyDAC, UniDAC, NexusDB and BDE, with a powerful SQLite3 kernel, and optional raw SQL access on top. It also lists the databases for which the framework can auto-generate SQL: SQLite3, Oracle, Jet and MSAccess, MS SQL, Firebird, DB2, PostgreSQL, MySQL and NexusDB. That breadth is the reason the root directory looks like it does, with dozens of SynDB units sitting next to SynCommons, SynCrypto, SynCurl and SynLog.
One executable that can be server, service or client
The architectural claim that distinguishes mORMot from a typical ORM is about deployment shape. Because the design is modular, switching from a client-server architecture over HTTP, named pipes or GDI messages into a stand-alone application is, in the README's words, a matter of initialising mORMot classes. The same executable can run stand-alone, as a server, as a service or as a client, depending on run-time parameters. Above that sits an embedded JavaScript engine: SpiderMonkey is integrated on the server side and can be used to define business rules or any process, including MVC web rendering. The README compares it to node.js but with a multi-threaded core and the Delphi libraries available. The layered model is spelled out as presentation, application, domain model and data persistence, with cross-cutting concerns for data filtering and validation, security, caching, logging and testing.
Delphi shaped, and heavy on units
The framework targets Delphi 6 up to the latest Delphi and Free Pascal revisions, with servers on Windows and Linux and clients on any platform including mobile and AJAX clients. The README notes that even the Delphi starter edition is enough, and that the core is non-visual, so you work with a consistent set of classes rather than visual components, with optional UI units for screen auto-generation, reporting and a ribbon interface. The application layer is described as implementing service oriented architecture through interface-based services like WCF and client-server ORM including method-based services, following a RESTful model with JSON over several protocols such as HTTP/1.1, and the presentation layer covers MVC with i18n and reporting including PDF export, logic-less Mustache templates for web clients and native JSON or REST access for AJAX clients. One deployment detail is worth noting: no dependency is needed on the client side, no database driver and no third-party runtime, so a rich Delphi client can be deployed by copying and running it.
What a new project should read instead
The alternative is stated by the project itself rather than guessed at. The mORMot 2 repository is the one to use for anything new, and the frozen mode of mORMot 1 is described as including only SQLite3 static binaries and important bug fixes going forward, so the two branches have diverged in purpose. That matters for anyone evaluating mORMot 1 today, because a feature you read about in the README may never appear in this branch. Two smaller facts belong in the same file. The mORMot 1 repository has no LICENSE file at its root, and the licence field is not stated, so the terms are not something the repository tells you at a glance. And with the Fossil repository disabled after a server failure, the Git history is now the only history of the project available here. For an existing user, the practical path is to keep what is deployed, take the SQLite3 static binaries and bug fixes that continue to arrive, and plan any new work on mORMot 2.
Editorial conclusion
mORMot 1 suits an existing Delphi or Free Pascal codebase that already depends on it and needs the SQLite3 static binaries or a targeted bug fix, and its layered structure is still a useful reference for Delphi developers. It does not suit a new project, because the README states the repository is frozen and points to mORMot 2 for anything new or maintainable. Before starting work here, read the warning block at the top of the README and confirm the licence terms yourself, since no licence file is listed at the root of this repository.
Frequently asked questions
Is Synopse mORMot 1 still being developed?
The README states the repository is in frozen or maintenance mode and that only SQLite3 static binaries and important bug fixes will be included in the future, and it asks you to use the mORMot2 repository for any new or maintainable project.
Which compilers and platforms does mORMot 1 support?
Delphi 6 up to the latest Delphi and Free Pascal revisions, with servers on Windows and Linux and clients on any platform, including mobile and AJAX clients. The README notes that even the Delphi starter edition is enough.
Which databases can mORMot 1 work with?
Direct access to Oracle, MS SQL, OleDB, ODBC and ZEOS or ZDBC, any TDataSet provider such as FireDAC, UniDAC, NexusDB and BDE, a SQLite3 kernel, and MongoDB for ODM persistence. It can auto-generate SQL for SQLite3, Oracle, Jet and MSAccess, MS SQL, Firebird, DB2, PostgreSQL, MySQL and NexusDB.
Does mORMot 1 include a JavaScript engine?
Yes. The SpiderMonkey JavaScript engine is integrated on the server side and can be used to define business rules or any process, including MVC web rendering, with a multi-threaded core.
What does mORMot 1 add to a plain ORM?
The README argues it is not an ORM with a transmission layer bolted on but a full client-server ORM and SOA, where persistence participates in a layered service oriented architecture with presentation, application, domain model and data persistence layers.
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-mormot)Was this useful?