Tag - mORMot2

Entries feed - Comments feed

2025-11-09

Sneak Peek mORMot 2.4: SCRAM-MCF REST Authentication

With the upcoming 2.4 release of our framework, we completed its REST authentication process, to follow state of the art principles like MCF strong hashing and SCRAM mutual authentication, with secure password storage on the server side.

This blog article will detail the background information needed to identify what is really going on.

Continue reading

2025-10-29

EKON 29 Slides

The EKON 29 Konference in Dusseldorf just ended.

Nice year, with a lot of AI talks.
To keep the pressure low, I did not talk about AI, but gave 3 sessions and 1 workshop about mORMot. Here are the slides I used.

Continue reading

2025-09-23

Pascal Conference 2025

The Pascal Conference 2025 was last week, in Germany.
It was a great opportunity for Delphi and FPC users to gather, and share some sessions, information, and beers.

Continue reading

2025-09-14

Our Server Just Died Last Friday

As you may have noticed, our forum was not available since Friday evening until this Saturday afternoon (Paris time).

In fact, our Dedibox hardware, which was running fine for years, just break down, and was not able to reboot.
The Dedibox/ScaleWay/Online service answered to my ticket that... the server just died... and they were not able to reboot either. What I did not know is that they can't access the hardware, because there are other servers in the same chassis, so they can't fix it. Or even investigate further. Period. Nice service.

So pretty much killed dead.
:(

Continue reading

2025-02-15

Join Us in Nederlands for a Coffee and More

The INTERNATIONAL PASCAL CAFE 2025 will take place at UTRECHT (IJSSELSTEIN), in Nederlands.

We are delighted to be part of the event, and speak about our little mORMot.

Continue reading

2025-02-01

Making a PRNG with AES

mORMot is a general purpose Open Source library, which features some advanced cryptographic primitives. It is written in modern object pascal, with some assembly for its core process. It is used since years in several security-sensitive projects, and has been audited internally by at least one billion dollar company.

We already spoke about this a few years ago. In the meanwhile, the implementation details of our CSPRNG (Cryptographically Secure Pseudorandom Number Generator), as it is currently in the mORMot 2 repository, have been tuned and proven. Time to share some more information.

Continue reading

2024-12-25

The Marmots Wish You a Merry Christmas

Just a small post to wish you all..

Continue reading

2024-10-16

Release of mORMot 2.3 Stable

It is time for a new mORMot release!

Continue reading

2024-10-12

Some Rodents in the State of Denmark

Since decades, Delphi has user groups everywhere, from Australia to Austria, from Russia to California.
I will join the DAPUG (Database Application Programmers Users Group), which is the Danish Delphi user Group, in the next weeks, for two exciting days of Workshop.

Continue reading

2024-09-06

Swagger/OpenAPI Client Generator for Delphi and FPC

OpenAPI, which was formerly called Swagger, is a set of specifications to encode the server API endpoints definitions into text, mostly JSON.
From this reference text, you can generate client code to access the service, in a vast number of languages.

Delphi seems to be far behind other languages, in terms of this code generation. I found nothing even working for FPC.
Since we needed it for our internal tools at Tranquil IT, we just published the new mormot.net.openapi.pas Open Source unit, which is quite a game changer. Thanks Andreas for starting this project, and testing it in its early age!

Continue reading

2024-02-01

IDocList/IDocDict JSON for Delphi and FPC

Since years, our Open Source mORMot framework offers several ways to work with any combination of arrays/objects documents defined at runtime, e.g. via JSON, with a lot of features, and very high performance.

Our TDocVariant custom variant type is a powerful way of working with such schema-less data, but it was found confusing by some users.
So we developed a new set of interface definitions around it, to ease its usage, without sacrificing its power. We modelized them around Python Lists and Dictionaries, which is proven ground - with some extensions of course.

Continue reading

2024-01-01

Happy New Year 2024 and Welcome MGET

Last year 2023 was perhaps not the best ever, and, just after Christmas, we think about all people we know still in war or distress.
But in the small mORMot world, 2023 was a fine millesima. A lot of exciting features, a pretty good rank in benchmarks, and a proof of being ready for the next decade.

For this new year, we would like to introduce you to a new mORMot baby: the mget command line tool, a HTTP/HTTPS web client with peer-to-peer caching.
It is just a wrapper around a set of the new PeerCache feature, built-in the framework web client class - so you can use it in your own projects if you need to.

Continue reading

2023-12-09

Native X.509, RSA and HSM Support

Today, almost all computer security relies on asymmetric cryptography and X.509 certificates as file or hardware modules.
And the RSA algorithm is still used to sign the vast majority of those certificates. Even if there are better options (like ECC-256), RSA-2048 seems the actual standard, at least still allowed for a few years.

So we added pure pascal RSA cryptography and X.509 certificates support in mORMot.
Last but not least, we also added Hardware Security Modules support via the PKCS#11 standard.
Until now, we were mostly relying on OpenSSL, but a native embedded solution would be smaller in code size, better for reducing dependencies, and easier to work with (especially for HSM). The main idea is to offer only safe algorithms and methods, so that you can write reliable software, even if you are no cryptographic expert. :)

Continue reading

2023-10-31

Pascal In The Race: TFB Challenge Benchmarks

Round 22 of the TechEmpower Frameworks has just finished.
And this time, there was a pascal framework in the race: our little mORMot!

Numbers are quite good, because we are rated #12 among 302 frameworks over 791 runs of several configurations.

Continue reading

2023-09-08

End Of Live OpenSSL 1.1 vs Slow OpenSSL 3.0

mormotSecurity.jpg, Sep 2023

You may have noticed that the OpenSSL 1.1.1 series will reach End of Life (EOL) next Monday...
Most sensible options are to switch to 3.0 or 3.1 as soon as possible.

mormotSecurity.jpg, Sep 2023

Of course, our mORMot 2 OpenSSL unit runs on 1.1 and 3.x branches, and self-adapt at runtime to the various API incompatibilities existing between each branch.
But we also discovered that switching to OpenSSL 3.0 could led into big performance regressions... so which version do you need to use?

Continue reading

2023-08-24

mORMot 2.1 Released

We are pleased to announce the release of mORMot 2.1.
The download link is available on github.

The mORMot family is growing up. :)

Continue reading

2023-05-05

New DNS and (C)LDAP Clients for Delphi and FPC in mORMot 2

DNS and LDAP are the two protocols on which the Internet and the Intranet are built.
Most of the time, you don't have to care about them. But sometimes, you need to access them directly, especially in a corporate environment.

We just introduced in our Open Source mORMot 2 framework two client units to access DNS and LDAP/CLDAP servers.
You can resolve IP addresses and services using DNS, and ask for information about your IT infrastructure using LDAP.

Continue reading

2023-04-19

New Command Line Parser in mORMot 2

For most projects, we want to be able to pass some custom values when starting it.
The command line is then used to add this additional information.

We have ParamStr and ParamCount global functions, enough to retrieve the information. You may also use FindCmdLineSwitch for something more easy to work with.
The Lazarus RTL offers some additional methods like hasOption or getOptionValue or checkOptions in its TCustomApplication class. Their are better, but not so easy to use, and not available on Delphi.

We just committed a new command line parser to our Open Source mORMot 2 framework, which works on both Delphi and FPC, follows both Windows and POSIX/Linux conventions, and has much more features (like automated generation of the help message), in an innovative and easy workflow.

Continue reading

2023-01-10

mORMot 2 Release Candidate

The mORMot 2 framework is about to be released as its first 2.0 stable version.

The framework feature set should now be considered as sealed for this release.
There is no issue reported still open at github or in the forum.

Please test it, and give here some feedback to fix any problem before the actual release!
We enter a framework code-freeze phase until then.
:-)

Continue reading

2022-12-28

Efficient Routing for Christmas

This is perhaps the last new feature of mORMot 2 before its first stable release: a very efficient custom URI routing for our HTTP/HTTPS servers.

At ORM and SOA level, there is by-convention routing of the URI, depending on the ORM table, SOA interface and method, and TOrmModel.Root value. Even for our MVC web part, we rely on a /root/ URI prefix, which may not be always needed.
Relying on convention is perfect between mORMot clients and servers, but in some cases, it may be handy to have something smoother, e.g. to publish a truly REST scheme.

We introduced two routing abilities to mORMot 2, with amazing performance (6-12 million parsings per CPU core), via a new THttpServerGeneric.Route property:

  • Internal URI rewrite, to redirect internally from a human/REST-friendly request e.g. to a SOA /root/interface.method layout, or to a MVC web page;
  • Direct callback execution, with optional parameter parsing.

Article edited on 28th December:
Fixed performance numbers (much higher than reported), and introduced latest source changes.

Continue reading

- page 1 of 3