Licensing
KFR is dual licensed. You may use it under the GNU General Public License, version 2 or later (GPLv2+), or under a commercial KFR license. You must comply with one of these licenses before distributing software that uses KFR.
Using KFR under GPLv2+
GPLv2+ is designed for software whose source code is available to its users. It allows you to use, study, modify, and redistribute KFR, including in commercial products.
When you distribute an application that uses KFR under GPLv2+, you must also publish the complete corresponding source code under GPLv2+ and preserve the applicable copyright and license notices. For KFR, this includes your application and all libraries linked with it, whether the linkage is static or dynamic. Recipients must be able to obtain, modify, and redistribute that source code under the GPL.
In practical terms, GPLv2+ is suitable when you can release the complete source code for the distributed product and its linked libraries under the GPL. It is not suitable for distributing a closed-source application that links to KFR.
Commercial license
If you cannot comply with the GPLv2+ requirements and still want to use KFR, you must purchase a commercial license. A commercial license lets you use KFR in proprietary or closed-source software without the GPL publication requirements.
Purchase a commercial license at kfr.dev/purchase. Commercial licenses are perpetual, and future KFR versions are always available free of charge to licensed users.
Licensing FAQ
Which license do I need?
Use KFR under GPLv2+ if you can disclose the source code of your whole software product under the GPL. This includes the source code of all components of the product, whether they are linked statically or dynamically. If you cannot meet those requirements, you need a commercial license.
The Personal commercial tier is for an individual developing one public project, with no more than one developer. The Starter tier covers up to five projects and three developers. The Pro+ tier covers unlimited projects and up to three developers. Enterprise licensing is available for additional developers, hardware-based distribution, or other requirements covered by separate terms.
I have a personal project. Should I buy KFR?
You do not need to buy KFR if your project complies with the GPL and you can disclose its complete corresponding source code. If you are an individual and your project will be publicly available for sale or download, the Personal tier may be suitable. It is limited to one project and one developer, and the project must include the required KFR website link.
The Personal tier cannot be used for private, internal, or non-public projects, or for developing third-party applications. Contact us about a different commercial tier if your project does not meet those conditions.
What does a seat mean?
The number of developers is usually computed as follows: it includes all developers who need KFR sources or KFR objects (.o/.obj, .a/.lib) to build projects on their machines. Licenses are not tied to individual developer names, but the number of such developers in any calendar month must not exceed three for the Pro+ license. No additional seats are required for computers used only for building and testing.
If additional licenses are needed, an upgrade to the Enterprise license is required. The license upgrade cost is based on the price difference at the time of purchase.
Is the license perpetual?
Yes. A purchased commercial license is a one-time, perpetual license and includes new KFR patch, minor, and major updates for that license. The agreement remains in effect unless it is terminated under its terms.
Can I get a refund?
No. All license fees are non-refundable. Please evaluate KFR for your requirements before purchasing; the source code is available for evaluation and testing. See the refund policy for details.
Important
This page is a short, practical overview and is not legal advice. Read the full GPLv2 license and the KFR Commercial License Agreement. Consult a qualified legal professional if you need advice about your specific use case.