HTTP(S) is the main protocol of the Internet.
We enhanced the mORMot 2 socket client to push its implementation into more use cases. The main new feature is perhaps WGET-like processing, with hashing, resuming, console feedback, and direct file download.
Tag - mORMot2
2021-05-14
Enhanced HTTP/HTTPS Support in mORMot 2
2021-05-14. Open Source › mORMot Framework
2021-05-08
Enhanced Faster ZIP Support in mORMot 2
2021-05-08. Open Source › mORMot Framework
The .zip
format is from last century, back to the early DOS days, but can still be found everywhere. It is even hidden when you run a .docx
document, a .jar
application, or any Android app!
It is therefore (ab)used not only as archive format, but as application file format / container - even if in this respect using SQLite3 may have much more sense.
We recently enhanced our mormot.core.zip.pas unit:
- to support Zip64,
- with enhanced
.zip
read/write, - to have a huge performance boost during its process,
- and to integrate better with signed executables.
2021-02-22
OpenSSL 1.1.1 Support for mORMot 2
2021-02-22. Open Source › mORMot Framework
Why OpenSSL? OpenSSL is the reference library for cryptography and secure TLS/HTTPS communication. It is part of most Linux/BSD systems, and covers a lot of use cases and algorithms. Even if it had some vulnerabilities in the past, it has been audited and validated for business use. Some algorithms […]
2021-02-13
Fastest AES-PRNG, AES-CTR and AES-GCM Delphi implementation
2021-02-13. Open Source › mORMot Framework
Last week, I committed new ASM implementations of our AES-PRNG, AES-CTR and AES-GCM for mORMot 2.
They handle eight 128-bit at once in an interleaved fashion, as permitted by the CTR chaining mode. The aes-ni opcodes (aesenc aesenclast
) are used for AES process, and the GMAC of the AES-GCM mode is computed using the pclmulqdq
opcode.
Resulting performance is amazing: on my simple Core i3, I reach 2.6 GB/s for aes-128-ctr
, and 1.5 GB/s for aes-128-gcm
for instance - the first being actually faster than OpenSSL!
2020-12-29
mORMot 2 Proposal: Rename RawUTF8 Type As Utf8 ?
2020-12-29. Open Source › mORMot Framework
One proposal for mORMot 2. What if we renamed the RawUTF8 type into Utf8? With a default compatibility redirection if PUREMORMOT2 is not defined, of course. The "Raw" prefix came from early mORMot code, which used TRichView as reference for the UTF-8 encoding... but it is clearly an […]
2020-11-16
mORMot 2 Entering Testing Phase
2020-11-16. Open Source › mORMot Framework
After a lot of work, our mORMot 2 fork is entering its testing phase.
The main /src/core /src/lib /src/net /src/db /src/orm /src/soa /src/app
folders of our Source Code repository have been implemented.
Please check https://github.com/synopse/mORMot2 for the latest version of the source code. The README.md
files on each folder would help you discover the new framework design, and the content of each unit.
2020-11-04
EKON 24 Presentation Slides
2020-11-04. Open Source › mORMot Framework
EKON 24 just finished. "The conference for Delphi & more" was fully online this year, due to the viral context... But this was a great event, and I am very happy to have been part of it. Please find the slides on my two sessions: mORMot 2 Performance: from Delphi to AVX2 Of course, […]
2020-10-26
mORMot2 Renaming
2020-10-26. Open Source › mORMot Framework
Last weeks, we introduced REST, ORM and SOA process in the mORMot2 repository.
During this phase, we split the huge mORMot.pas
unit into several mormot.rest.*.pas
, mormot.orm.*.pas
and mormot.soa.*.pas
units, to follow SOLID principles.
But we also renamed the base types into something more consistent and easier to work with.
Forget about TSQLRecord
or TSQLRest
, discover TORM
and TRest
!
2020-05-07
New Multi-thread Friendly Memory Manager for FPC written in x86_64 assembly
2020-05-07. Open Source › mORMot Framework
As a gift to the FPC community, I just committed a new Memory Manager for FPC.
Check mormot.core.fpcx64mm.pas in our mORMot2 repository.
This is a stand-alone unit for FPC only.
It targets Windows and Linux multi-threaded Service applications - typically mORMot daemons.
It is written in almost pure x86_64 assembly, and some unique tricks in the Delphi/FPC Memory Manager world.
It is based on FastMM4 (not FastMM5), and we didn't follow the path of the FastMM4-AVX version - instead of AVX, we use plain good (non-temporal) SSE2 opcode, and we rely on the mremap API on Linux for very efficient reallocation. Using mremap is perhaps the biggest benefit of this memory manager - it leverages a killer feature of the Linux kernel for sure. By the way, we directly call the Kernel without the need of the libc.
We tuned our x86_64 assembly a lot, and made it cross-platform (Windows and POSIX). We profiled the multi-threading, especially by adding some additional small blocks for GetMem (which is a less expensive notion of "arenas" as used in FastMM5 and most C allocators), introducing an innovatice and very efficient round-robin of tiny blocks (<128 bytes), and proper spinning for FreeMem and medium blocks.
It runs all our regression tests with huge performance and stability - including multi-threaded tests with almost no slow down: sleep is reported as less than 1 ms during a 1 minute test. It has also been validated on some demanding multi-threaded tasks.
2020-03-30
Debriefing of mORMot2 Survey
2020-03-30. Open Source › mORMot Framework
Thanks you all for have posted your feedback on our mORMot2 Survey!
Here are some insights.
2020-03-06
We Need U: Survey about mORMot 2.0
2020-03-06. Open Source › mORMot Framework
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 […]
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.
page 2 of 2 - next entries »