First of all, if it was not clear enough: Delphi will continue to be supported in mORMot 2.0. Some people reported that our previous article may have been misleading. But perhaps not all versions. For sure, Delphi 5 and Kylix will not be supported in mORMot 2. It is also possible that it would not […]
Tag - blog
2020-03-03
Preparing Revision 2.x of the mORMot Framework
2020-03-03. Open Source › mORMot Framework
The more I think of it, the more I am convinced it is time to change how the
framework is versioned.
We have version 1.18 since years... difficult to follow... time to upgrade!
I would like to upgrade mORMot to version 2 - with a major
refactoring.
2020-02-17
New move/fillchar optimized sse2/avx asm version
2020-02-17. Open Source › mORMot Framework
Our Open Source framework includes some optimized asm alternatives
to RTL's move()
and fillchar()
, named
MoveFast()
and FillCharFast()
.
We just rewrote from scratch the x86_64 version of those,
which was previously taken from third-party snippets.
The brand new code is meant to be more efficient and maintainable. In
particular, we switched to SIMD 128-bit SSE2 or 256bit AVX memory access (if
available), whereas current version was using 64-bit regular registers. The
small blocks (i.e. < 32 bytes) process occurs very often, e.g. when
processing strings, so has been tuned a lot. Non temporal instructions (i.e.
bypassing the CPU cache) are used for biggest chunks of data. We tested
ERMS support, but it
was found of no benefit in respect to our optimized SIMD, and was actually
slower than our non-temporal variants. So ERMS code is currently disabled in
the source, and may be enabled on demand by a conditional.
FPC move()
was not bad. Delphi's Win64 was far
from optimized - even ERMS was poorly introduced in latest RTL, since it should
be triggered only for blocks > 2KB. Sadly, Delphi doesn't support AVX
assembly yet, so those opcodes would be available only on FPC.
Resulting numbers are talking by themselves. Working on Win64 and Linux, of course.
2019-12-25
Merry Christmas and Happy New Year!
2019-12-25. Synopse Company

Let the little mORMot wish you and all yours a merry Christmas and a happy New Year! Happy coding!
2019-10-30
EKON 23 Presentation Slides and Code
2019-10-30. Open Source › mORMot Framework

I just finished my workshop at EKON 23.
Like every year, it was a great event to attempt to, and I enjoyed presenting 2
sessions and 1 workshop.
Sessions were about "Kingdom Driven Design" (KDD), which is the
name I used to define a cut-down version of "Domain Driven Design" (DDD).
Less paranoid, a bit less isolation, but perhaps more common sense for the less
sensitive projects.
Some presentations and code are now available!
2019-10-17
Nice introductory articles about mORMot
2019-10-17. Open Source › mORMot Framework
I just found some very nice articles by Stephan Bester about first steps to mORMot's ORM and SOA.
Don't be scared by the mORMot: it is more stressed than you
are.
This painful picture just
won a wildlife photographer prize... poor little rodent!
2019-09-21
SQLite3 static linking for Delphi Win64
2019-09-21. Open Source › mORMot Framework
A long-awaited feature was the ability to create stand-alone mORMot Win64 applications via Delphi, with no external sqlite3-64.dll required.
It is now available, with proper integration, and encryption is working!
2019-09-18
Introducing Kingdom Driven Design at EKON 23
2019-09-18. Open Source › mORMot Framework

There are still some days to join EKON 23 conferences with the reduced price!
I will make 2 sessions, and 1 workshop, in English (my German is not good
enough), about practical project design and mORMot.
If you find DDD is a bit too much for you, but still want to write clean code,
check this!
2018-11-12
Win 100GB of log space from a Real Life mORMot Project
2018-11-12. Open Source › mORMot Framework

Sometimes, I am asked what could be done with mORMot. Well, we've been using the library at LiveMon to analyse logs for example. And we're able to get speed of a few TB/sec. Speed above is no typo: TB/s not GB/s. For a regex search, not a per-word dictionary based lookup. With a cross-platform […]
EKON 22 Slides and Code
2018-11-12. Pascal Programming
I've uploaded two sets of slides from my presentations at EKON 22 : Object Pascal Clean Code Guidelines Proposal High Performance Object Pascal Code on Servers with the associated source code The WorkShop about "Getting REST with mORMot" has a corresponding new Samples folder in our […]
2018-03-12
New AES-based SQLite3 encryption
2018-03-12. Open Source › mORMot Framework
We just committed a deep refactoring of the SynSQlite3Static.pas unit - and all units using static linking for FPC. It also includes a new encryption format for SQlite3, using AES, so much more secure than the previous one. This is a breaking change, so worth a blog article! Now all static .o .a […]
2018-02-07
Status of mORMot ORM SOA MVC with FPC
2018-02-07. Open Source › mORMot Framework

In the last weeks/months, we worked a lot with FPC.
Delphi is still our main IDE, due to its better debugging experience under
Windows, but we target to have premium support of FPC, on all platforms,
especially Linux.
The new Delphi Linux compiler is out of scope, since it is heavily priced,
its performance is not so good, and ARC broke memory management so would need a
deep review/rewrite of our source code, which we can't afford - since we have
FPC which is, from our
opinion, a much better compiler for Linux.
Of course, you can create clients for Delphi Linux and FMX, as usual, using
the cross-platform
client parts of mORMot. But for server side, this compiler is not
supported, and will probably never be.
2018-01-02
Happy New mORMot Year
2018-01-02. Synopse Company

Happy New mORMot Year 2018! And thanks Mario for the video! […]
2017-11-11
Job Opportunities at LiveMon
2017-11-11. Synopse Company
You like working with mORMot ? We're hiring new developers at LiveMon. We're a full-remote team (with a monthly gather-up in Paris), working on a real-time AI-powered monitoring tool. I joined LiveMon this week, and we will work together on this exciting project, using mORMot and FPC! Contact us at […]
2017-10-24
EKON 21 Slides
2017-10-24. Open Source › mORMot Framework
After having enjoyed EKON 21 conferences in Köln, some quick post to share material about my presentations. MicroServices: SOLID Meets SOA MicroServices: Event-Driven Design Practical Domain-Driven Design I also included the "Practical DDD" source code in a new sample folder of the mORMot […]
2017-08-10
Faster and cross-platform SynLZ
2017-08-10. Open Source › mORMot Framework
You probably know about our SynLZ compression unit, in pascal and x86 asm, which is very fast for compression with a good compression ratio, and proudly compete with LZ4 or Snappy. It is used in our framework everywhere, e.g. for WebSockets communication, for ECC encrypted file content, or to […]
2017-03-22
Delphi 10.2 Tokyo Compatibility: DCC64 broken
2017-03-22. Open Source › mORMot Framework
We are proud to announce compatibility of our mORMot Open Source framework
with the latest Delphi 10.2 Tokyo compiler...
At least for Win32.
For Win64, the compiler was stuck at the end of the compilation, burning 100% of one CPU core...
A bit disappointing, isn't it?
2017-03-18
Application Locking using Asymmetric Encryption
2017-03-18. Open Source › mORMot Framework
A common feature request for professional software is to prevent abuse of
published applications.
For licensing or security reasons, you may be requested to "lock" the execution
of programs, maybe tools or services.
Our Open-Souce mORMot framework can leverage
Asymmetric Cryptography to ensure that only allowed users could run some
executables, optionally with dedicated settings, on a given computer.
It offers the first brick on which you may build your own system upon.
From the User point of view, he/she will transmit
a user@host.public
file, then receives a corresponding
user@host.unlock
file, which will unlock the application.
Pretty easy to understand - even if some complex asymmetric encryption is
involved behind the scene.
2016-12-19
JSON Web Tokens (JWT)
2016-12-19. Open Source › mORMot Framework
JSON Web Token (JWT
) is an open standard (RFC 7519) that defines a compact
and self-contained way for securely transmitting information between parties as
a JSON object. This information can be verified and trusted because it is
digitally signed. JWTs can be signed using a secret (with the HMAC algorithm)
or a public/private key pair using RSA or ECDSA.
They can be used for:
- Authentication: including a
JWT
to any HTTP request allows Single Sign On user validation across different domains; - Secure Information Exchange: a small amount of data can be stored in the JWT payload, and is digitally signed to ensure its provenance and integrity.
See http://jwt.io for an introduction to JSON Web Tokens.
Our mORMot framework now implements JWT
:
HS256
(HMAC-SHA256) andES256
(256-bit ECDSA) algorithms (with the addition of the"none"
weak algo);- Validates all claims (validation dates, audiences, JWT ID);
- Thread-safe and high performance (2 µs for a
HS256
verification under x64), with optional in-memory cache if needed (e.g. for slowerES256
); - Stand-alone and cross-platform code (no external
dll
, works with Delphi or FPC); - Enhanced security and strong design - per instance, it is by design immune from https://auth0.com/blog/2015/03/31/critical-vulnerabilities-in-json-web-token-libraries
- Full integration with the framework.
2016-11-10
EKON20 mORMot Conferences
2016-11-10. Open Source › mORMot Framework
EKON20 is now over, and there was a lot of people, great speakers, beautiful T-Shirt, and fresh beer! I've published the slides of my mORMot conferences on SlideShare... EKON20 From RAD to SOA with mORMot EKON20 mORMot Legacy Code Technical Debt Delphi Conference EKON20 Ride a mORMot EKON20 2016 […]
« previous entries - page 2 of 14 - next entries »