Is Dremio CE fully Apache 2.0?

I’m confused by some of the advertising/feedback I’m seeing about the licensing for Dremio CE.
For example, in a 17’ post: https://community.dremio.com/t/where-can-i-download-the-latest-code/487, there is a comment that:

Please note that our GitHub repository only contains code under open source licenses, whereas the community edition contains some extra modules free to use (but not open-source).

But on the Dremio edition comparison screen it very clearly labels the Community Edition as being “Apache 2.0” https://www.dremio.com/enterprise-edition/.

If you go download the CE edition from the Dremio website, it has a licenses folder; a perfect place to sort all of this out. But it fails to do so in my opinion:

  • LICENSE - A standard Apache 2.0 License
  • LICENSES_FOR_DEPENDENCIES.md - Includes licenses for many dependencies, some of them Dremio, but does not mention the “free to use” libraries such as “dremio-ce-jdbc-plugin”, or any of the “dremio-ce-*” plugins.

If you dig a round a bit, you’ll find a 3rdparty folder under jars, this would be another good place to put libraries that maybe don’t follow the Apache 2.0 license, and indeed there are a few Dremio jar files in this folder, but it does not include any of the dremio-ce*.jar files, these are in the main jars directory.

tl;dr;

Are the dremio-ce-*.jar files Apache 2.0 licensed? If not, please read the post after all, if they are, where is the source code?

Sorry for the confusion, but all the CE artifacts are proprietary artifacts covered by the “Dremio Free Software License 1.0” license (whose content is included in LICENSE_FOR_DEPENDENCIES.md). They are mentioned under various names like “Dremio Pushdown Pack”.

The core of Dremio is available under the Apache 2.0 license, with all the code posted on Github at https://github.com/dremio/dremio-oss. It is still a fully functional product, even would you choose to not use the community modules.

Thanks for the response @laurent. I’m afraid there is still a bit of confusion. You have four entries for Dremio based packages in the mentioned LICENSES_FOR_DEPENDENCIES.md:

  • Dremio Fast Threads
  • Dremio Parquet Accelerator (dremio-ce-parquet-plugin)
  • Dremio Pushdown Pack
  • Dremio Smart Substitutions

But it’s not clear which packages these are referring to, except for Parquet; I actually couldn’t figure out what these other three were supposed to point to, but I only reviewed dremio-ce-* libraries. Looking through the dremio-ce-* libraries, here are a few item’s I would expect to see in the list, based on names listed in their manifest files:

  • Dremio Sabot - Kernel
  • Dremio Sabot - Asynchronous Thread Scheduler
  • Dremio Storage Plugins - Mongo
  • Dremio Storage Plugins - JDBC
  • Dremio Storage Plugins - Hive
  • Dremio Storage Plugins - Elasticsearch

Having a separate download for these free add-on’s that are not Apache licensed would remove a lot of confusion around licensing for these free to use, and optional, sub components.

I am a PMC member on Apache NiFi, and we are not allowed to include non Apache license compliant binaries in a distribution that we have labeled as being licensed as Apache (oh, how I’ve tried :slight_smile:), which based on the Dremio marketing page I do not see how a person would not believe that this distribution available for download, pre-compiled, from the Dremio website would not be licensed as such (maybe an * is needed on the marketing page). Maybe this is only a restriction that applies to official Apache Org projects, I’m not sure.

Any community jars (which should all start with dremio-ce) are basically represented by those 4 mentions in LICENSES_FOR_DEPENDENCIES.md. As we want users to have the best experience out of the box, those components are shipped as part of the Dremio Community Edition. For people who want to get a pure Apache License experience, they can use the dremio-oss repository to build their own distribution.

The Apache Foundation has a strict set of rules regarding what a project can use or not as dependencies, based on their license, but those rules only apply do not apply to other projects using the Apache License (as long as the involved licenses allow it).

I reported this conversation to our website team to see if/how we can improve it to avoid any confusion.

Let’s say I want to make improvements to the elasticsearch plugin. One part of the code of this is open source, the other is closed source (elasticsearch-ce). EDIT.
From the first laurent’s answer I seem to have understood that it is still possible to use only the open source part. Elasticsearch plugin DOES NOT depend on Elasticsearch-CE plugin, while Elasticsearch-CE plugin DEPENDS on Elasticsearch plugin.
EDIT2. so I just use the flag -Ddremio.oss-only=true as indicated in the README of the github dremio repository