# Kastri fills the gaps in Delphi's RTL, FMX and VCL libraries

> Kastri is a Delphi library from Delphi Worlds that backfills newer platform APIs and adds what FMX and the RTL do not provide, structured to avoid pulling in dependencies it does not need. Its author announced on 2026-01-15 that new additions are limited to sponsored work, while existing features still get fixed.

**DelphiWorlds/Kastri** — Cross-platform library for Delphi

- Repository: https://github.com/DelphiWorlds/Kastri
- Stars: 602 · Forks: 150
- Language: Pascal
- License: MIT
- Published: 2026-10-22 · Updated: 2026-10-22 · Language: en
- Canonical page: https://hysenlabs.com/projects/delphiworlds-kastri

## A library that backfills rather than replaces

Kastri is described as a cross-platform library which builds upon the existing RTL, FMX and VCL libraries in Delphi. That word builds upon is the important part of the definition. Kastri is not a framework that asks you to restructure your application, and it is not a competitor to the FireMonkey or VCL libraries that ship with the compiler. It sits on top of them and does two specific jobs. It supports a number of newer APIs that you will not find in FMX or the RTL, and it backfills APIs that are missing entirely on some platforms. The second half of that is what makes it cross-platform rather than merely large. A feature that exists on one target OS but not another is a portability tax on every project that touches it, and a library that supplies the missing implementation turns an ifdef maze into a single call. The stated design goals include being structured so as to avoid creating unnecessary dependencies, following strict coding standards for consistency and readability, and being kept as simple as practicable. It is named after the place in Greece where Delphi once stood, which is the only part of the project with no engineering consequence.

## Additions are limited to sponsored work

This is the fact that should shape any decision to build on Kastri, and the author states it at the very top of the documentation rather than in a changelog. As at January 15th, 2026, additions to Kastri become limited, mainly due to low sponsorship levels and prioritization of the author's time. The escape hatch is offered explicitly: if you want something implemented and are willing to finance it, raise an issue indicating that compensation will be provided on the understanding that it will be included in Kastri, or contact the author directly through the Slack workspace or email to discuss arrangements. What continues is maintenance of what already exists. The author commits to resolving issues for anything already in Kastri, as long as the fix does not involve substantial rework, with OS changes given as the example of a legitimate reason. So the practical contract is now two-tiered. New capability is a commercial arrangement. Keeping the existing library working against a moving operating system is still the maintainer's job. That is a coherent arrangement for a single-maintainer project, and it is also a different risk profile from a library with a broad contributor base, where you can often get a feature in by writing it yourself.

## Getting Kastri into a Delphi project

The installation story is unusually light, and that is one of the design decisions worth understanding before you commit. For the most part there are no components to install. You clone the repository, or download and unzip it, and make sure your project paths or IDE paths point at the folders holding the units you actually use. The library is source you compile into your application rather than a package you register in the IDE. The one exception is the Native Controls suite, known as Kastri FMX, which lives under Controls and can be installed into Delphi as a design-time component package. That distinction between source units and a design-time package matters because it means most of the library costs you nothing at install time and nothing at run time beyond the code you reference, while the controls cost you an install step and a package registration. Fork is named as a highly recommended Git client, which is a small tell about how the maintainer expects people to work with a repository of this size.

## The Android jar suffix trap in Delphi 11 and 12

Here is the sharpest practical edge in the project. With the introduction of Delphi 11 and Delphi 12 there were changes related to Android, and the result is that the Lib folder can contain new jar files whose name matches an existing jar with a suffix of 2.0.0 or 3.0.0, for example dw-kastri-base-3.0.0.jar. A jar with a 2.0.0 suffix works only with Delphi 11, and one with a 3.0.0 suffix works only with Delphi 12. If a jar does not have a corresponding suffixed jar, it should also work with either release. The knock-on effect is that existing demos created with Delphi 10.4 or Delphi 11 may require the Android Libraries fix when used with a later version of Delphi. This is the kind of detail that produces a build failure rather than a clear error, and the failure appears to be about missing jars rather than about the library's own code. If you are evaluating the library on Android, this is the first thing to look at, not the last, because it determines whether your build works at all on your compiler version.

## Demos as working examples, with configuration you must copy

Demo applications live in the Demos folder, including those tied to articles on the Delphi Worlds blog. The documentation attaches an important warning to them, which is easy to skim past. Most demos have a readme associated with them, and they may have configuration information that should be applied when using the features in your own projects. That is a fair description of how this library is meant to be learned from, because a demo that shows a working feature has to configure the platform somewhere, and that configuration is the part that does not travel when you copy the source. For Delphi 11 and Delphi 12 users there is a further wrinkle: some demos with Android support now have separate project and group project files suffixed with D11 and D12 where applicable. For demos without such a suffix, you may need to open Project Manager and, for each Android target you want, right-click the Libraries node and choose the option to revert system files to default before building. That is a manual step in the IDE, and skipping it produces a build that fails on missing Android libraries.

## Where the code actually lives in the repository

The top level directory listing explains the shape of the library better than the prose does. API holds API imports, Core holds the shared units, Features holds feature specific code, Controls is the Native Controls suite for FMX, Java holds the Java side needed for Android work, Lib is where the jar files live, Packages holds the Delphi package projects, Resources holds resource files, Include holds include units, Demos holds the samples, ThirdParty holds third party sources, and Tools holds tooling. There is also a CodingStandards.md at the root, a separate HowTo repository that hosts the Android Libraries fix, a Playground repository described as a separate testing ground for features that may or may not be included in Kastri, and a Delphi12.1.AndroidManifestIssue.md file that records a specific compiler issue. The Playground arrangement is a good model to be aware of: bleeding edge features are demonstrated there first, and only some of them graduate into the library proper.

## Coding standards as a filter for contributions

Pull requests are welcome, with conditions attached, and the conditions are specific enough to be useful when you are deciding whether to send one. Before making any, you should read the Coding Standards readme and ensure the change adheres to the standards, and that the Description section of the request is filled out noting the purpose and reasoning for the change. On the standards themselves the documentation gives concrete examples rather than platitudes: observe naming conventions, keep fields and methods in alphabetical order so they are easier to find as the number of methods grows, and have structured statements follow the standard. Alphabetical ordering is an unusual and revealing choice. It is trivially checkable, it removes arbitrary grouping decisions from review, and it scales as a unit grows, which fits a library that its author describes as strictly coded for consistency and readability. The practical effect for a user is that finding a method in a large unit becomes a search rather than a hunt, and for a contributor it means a diff against the existing file is mostly about the change itself.

## Support channels, sponsorship and the two-release window

Support comes through several channels with different terms. The Delphi Worlds Slack workspace has a channel devoted to Kastri where the author and other developers discuss how to use the library and what is in it, and sponsors of Kastri can receive priority support through the Slack workspace or by email. The Slack workspace is self-invite. Issues and enhancement requests go to the repository issues page, and updates are announced through the Delphi Worlds presence on X. Separately, the documentation sets a hard compatibility boundary: only the last two major releases are officially supported, and at present that includes Delphi 13.x and Delphi 12.x. The project is MIT licensed, which is the permissive end of the scale and carries the usual attribution condition without copyleft reach, which matters for a library you intend to embed in a commercial Delphi product. The last push to the repository was on 2026-10-14, so the existing code is still being touched, but the additions freeze from 2026-01-15 is the constraint that shapes planning.

## Conclusion

Adopt Kastri if you ship Delphi applications and keep hitting the same gap between what the RTL offers and what the target OS expects, particularly around Android, where the newer platform APIs are backfilled for you. Do not adopt it expecting new capability to keep appearing, since additions are limited as of 2026-01-15 and only work you are willing to finance will land, and do not adopt it if you are on a Delphi release older than the last two major versions, which are the only ones officially supported. Verify two things before you plan around it: that your compiler version falls inside the supported window, currently Delphi 13.x and Delphi 12.x, and that any demo you plan to copy ships the right jar suffix for your release, since the D11 and D12 suffixed project files are not optional detail. The practical first step is to clone the repository, point a scratch project at the units you need, and check that the demo's readme configuration is applied before you reuse its code.

## FAQ

### What is Kastri in Delphi?

Kastri is a cross-platform Delphi library from Delphi Worlds that builds upon the existing RTL, FMX and VCL libraries, supports newer platform APIs not found in FMX or the RTL, and backfills APIs missing on some platforms. It is MIT licensed.

### How do I install Kastri in a Delphi project?

For most of the library there are no components to install. Clone the repo or download and unzip it, then point your project or IDE paths at the folders holding the units you use. The Native Controls suite under Controls is the exception and can be installed as a design-time package.

### Why do some Kastri jars have a 2.0.0 or 3.0.0 suffix?

Because of Android related changes introduced with Delphi 11 and Delphi 12. A jar with a 2.0.0 suffix works only with Delphi 11 and one with a 3.0.0 suffix works only with Delphi 12, and a jar without a suffixed counterpart is expected to work with either.

### Is new development still happening in Kastri?

New additions are limited as of January 15th, 2026, because of low sponsorship levels and the author's time. New features are handled as sponsored work through an issue or direct contact, while issues with existing features are still resolved when they do not need substantial rework.

### Which Delphi versions does Kastri support?

Only the last two major releases are officially supported, which at present means Delphi 13.x and Delphi 12.x. Older releases may work but fall outside the supported window.

## Sources

- [DelphiWorlds/Kastri on GitHub](https://github.com/DelphiWorlds/Kastri)
- [Issues](https://github.com/DelphiWorlds/Kastri/issues)
- [License: MIT](https://github.com/DelphiWorlds/Kastri/blob/master/LICENSE)
- [README](https://github.com/DelphiWorlds/Kastri/blob/master/README.md)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/delphiworlds-kastri
