Free and Open Source Licenses

ODB is available with full source code and can be used with open source databases (SQLite, PostgreSQL, MySQL, etc.) as well as free editions of commercial databases (Oracle Express, SQL Server Express, etc.) under the terms of the GNU General Public License (GPL) version 2.

ODB can also be used free of charge non-commercially or for evaluation with non-free editions of commercial databases (Oracle, SQL Server, etc) under the terms of the ODB Non-Commercial Use and Evaluation License (NCUEL).

By linking with the ODB runtime libraries (directly or indirectly, statically or dynamically, at compile time or runtime), your application is subject to the terms of the GPL and/or NCUEL which both require that you release the source code of your application if and when you distribute it. Distributing an application includes giving it to customers, contractors, parent companies, subsidiaries, or any legal entity other than your own. On the other hand, if you only use your application within your organization, such as running it on your company's servers, then you do not need to make your source code public.

If you would like to use ODB in an open source project with a more liberal (than the GPL/NCUEL) license, then refer to the first question in the Licensing Q&A below.

Commercial Proprietary License (CPL)

If you do not wish to be bound by the terms of the GPL or NCUEL, you may purchase the Commercial Proprietary License (CPL) from Code Synthesis. Additional benefits of the CPL include:

Free Proprietary License (FPL)

In addition to the Commercial Proprietary License we offer a free version for handling small object models. This license allows you to use ODB in a proprietary (closed-source) application free of charge and without any of the GPL/NCUEL restrictions provided that the amount of the generated database support code in any single release of your application does not exceed 10,000 lines.

To start using ODB under the free proprietary license simply contact us and we will send you a copy of the license agreement. See also the following questions and answers for additional information.

The following table summarizes licensing options (GPL, NCUEL, CPL, or FPL) and application source code status (must be made public or can stay private) for each database as well as usage and distribution scenario.

Non-Commercial
within
Organization
Commercial
within
Organization
Non-Commercial
outside
Organization
Commercial
outside
Organization
SQLite GPL
private
GPL
public
GPL
public
CPL or FPL
private
CPL or FPL
private
PostgreSQL GPL
private
GPL
public
GPL
public
CPL or FPL
private
CPL or FPL
private
MySQL GPL
private
GPL
public
GPL
public
CPL or FPL
private
CPL or FPL
private
Oracle NCUEL
private
CPL or FPL
private
NCUEL
public
CPL or FPL
private
Oracle Express GPL
private
GPL
public
GPL
public
CPL or FPL
private
CPL or FPL
private
SQL Server NCUEL
private
CPL or FPL
private
NCUEL
public
CPL or FPL
private
SQL Server Express GPL
private
GPL
public
GPL
public
CPL or FPL
private
CPL or FPL
private

Contact us for more information on the Commercial Proprietary License or to discuss your licensing requirements. Why don't we publish prices for the Commercial Proprietary License? See the answer in the Licensing Q&A.

Licensing Q&A

Why do you have to use the "viral" GPL? Can't you just release everything under BSD or a similar license?

Our goal is to allow as many projects as possible to use and benefit from ODB while being able to fund its future development. To achieve this we employ the so-called dual-licensing model which encourages sharing of the benefits, in one form or another, derived from using ODB (sometimes referred to as the quid pro quo principle). It works as follows:

While the assumptions made in the first scenario (private usage) are reasonably accurate when ODB is used with open source databases (SQLite, PostgreSQL, MySQL), it is unlikely that an application that uses an expensive commercial database (Oracle, SQL Server) is not a source of significant revenue or utility to the organization. To address this discrepancy we have introduced NCUEL, which allows the use of ODB with commercial databases and without giving anything back only for non-commercial or evaluation purposes.

Another principle of our licensing model that we believe to be very important is the availability of complete source code. Even with licenses that would not be deemed free or open source by FSF or OSI, such as NCUEL, FPL, or CPL, we still provide complete source code for the entire ODB system.

We also realize that there are unfortunate and unintended consequences of using this licensing model. For example, other open source projects that use a more liberal license may be unable to use ODB because the resulting application would carry on the GPL restrictions. However, to address this, we are prepared to make licensing exceptions that would allow specific open source projects to use ODB without any of the GPL restrictions. So if you believe that in your particular case the ODB licensing terms do not match the licensing spirit outlined above, please get in touch and we will work something out. Also see the ODB License Exception blog post for more information on this topic.

Why don't you publish prices for the Commercial Proprietary License?

Some people believe that companies don't make their prices public in order to charge different clients different fees. While some may engage in such practices, we offer exactly the same price to everyone. No exceptions. Not even for resellers.

So why don't we make them public? The reason is actually very simple: we need feedback. You can download and evaluate a fully-functional, non-expiring version of ODB with full source code (in fact, there is only one version of ODB that everyone uses). And we don't ask you any questions, not even for an email address. This means you can take as long as you need to evaluate the software and nobody is going to bug you. But at some point we would like to get some feedback on how commercially viable ODB is. Asking you to email us for the prices seemed like the least intrusive way to do it. After all, if you are looking for prices, then you at least think ODB might be useful to you and it may be worth paying for it.

We realize this is an inconvenience. That's why we make this process as painless as possible. We are not going to ask you to fill in a long questionnaire. We are not going to call you (unless you ask us to). The way it works is like this: you send us an email saying that you would like to know the licensing fees for ODB. Any additional information about your project is appreciated but not required. We reply with an overview of available licensing models and a quote. If we don't hear back from you after some time, we will follow up once. If still no reply, we conclude that you are not interested and won't contact you again. We would prefer that you use your company email if this is related to your company's project (remember, we need feedback). But we will understand if you send it from a disposable web account.

Finally, some people believe that if the prices are not published, then it automatically means the product requires negotiations, custom deals, and is very expensive. As in at least tens of thousands of dollars expensive. Again while this may be true for some products, this is not the case with ODB. As discussed above, our reason not to publish prices is to get feedback as opposed to extract as much as possible from our customers.

If you are still reluctant to contact us, then just to give you a rough indication of the price magnitudes, the cheapest ODB license is under $1,000/€1,000.

Why do you offer the Free Proprietary License?

We often get questions about our Commercial Proprietary License from developers that have just a handful of classes which they would love to quickly and easily persist using ODB instead of manually writing database mapping code. A typical scenario is an application configuration that needs to be stored in an SQLite database.

Unfortunately, the administrative burdens and delays involved in a purchase (getting approval from management, contacting the purchasing department, purchasing via a PO or credit card, etc.) are often hard to justify considering such a simple use-case. The administrative overheads on our side (processing the PO or credit card, delivering the license, issuing the invoice, etc.) also force us to set a minimum limit on the license size and price that we can offer.

All this usually leads to either the license being too expensive for the task at hand or the understandable unwillingness of the developers to endure the purchasing process. As a result we have decided to spare the developers the inconvenience of using second-choice tools and low-level database access APIs and offer a free version of our proprietary license.

What kind of object model can I persist with 10,000 lines of code?

As a rough guide, 10,000 lines of code are sufficient to handle an object model with 10-20 persistent classes each with half a dozen data members. Besides the number of persistent classes, the amount of the generated code also depends on the use of other features, such as query support, views, containers, etc.

If you already have your persistent classes defined, then you can quickly find out whether you can use the Free Proprietary License by compiling your header(s) with the --show-sloc option.

Note also that the lines of code measurement used here is the standard Physical Source Lines of Code (SLOC) metric with empty lines and comments excluded from the count.

Do I have to manually make sure I comply with the Free Proprietary License lines limit?

No, in addition to the --show-sloc option mentioned above, the ODB compiler supports --sloc-limit which automatically checks the lines limit with each recompilation.

Does the Free Proprietary License limit me in any way other than the size of the generated code?

No. In particular, you can use the generated code in commercial and/or closed-source applications without having to make your source code public. You get to use the same, fully-functional version of ODB that we give to the open source community and commercial users. You can target any database that is supported by ODB. And the software can be installed on any number of computers and can be used by any number of developers.

Note, however, that similar to the open source licenses, the Free Proprietary License does not offer any legal assurances, warranties, or indemnification and it comes with best-effort, community support via the public mailing lists.

Is your Commercial Proprietary License also based on the lines of code metric?

We offer a number of licensing models with the model based on the lines of generated code being one of them. Contact us if you would like to learn more about the available licensing models and pricing.

Can I still purchase the Commercial Proprietary License even if the table above indicates I can use ODB free of charge under the GPL, NCUEL, or FPL?

Yes, you can purchase the Commercial Proprietary License for any database and usage scenario. Some of the reasons why you may want to do this include the commercial-grade technical support as well as the legal assurances, warranties, and indemnification that come with the Commercial Proprietary License. In contrast, ODB licensed under the GPL, NCUEL, or FPL comes with no warranties or guaranteed technical support (we provide best-effort technical support to the open source community via our public mailing lists).

I don't need the Commercial Proprietary License but I would like to get commercial-grade technical support. Can I purchase this separately?

Yes, you can purchase a technical support contract for the use of ODB under the GPL, NCUEL, or FPL.