//**
gopkg.in/adibiarsotp/dgraph.v83@v83.0.0-20171012064944-38e0eed888d7
gopkg.in/adibiarsotp/dgraph.v82@v82.0.0-20170922040331-84d68f09dda5
**//

{{Types "Apache-2.0 AGPL-3.0"}}

# Dgraph Licensing

## Server

Dgraph Server is available under [GNU AGPLv3](https://www.gnu.org/licenses/agpl-3.0.html).

## Drivers

Dgraph Go driver and any other drivers are available under [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0).

## Licensing Policy

The reasoning behind chosing AGPL license is explained in this [blog
post](https://blog.dgraph.io/post/licensing/). The general idea is that using
Dgraph for free even for commercial purposes is OK, as long as you release any
modifications to the server code back to the community.

Most users don't need to modify server code, so they can continue to use Dgraph
for free, forever.  But, if you need to modify server code and are not ok with
releasing the changes back, [get in touch](mailto:contact@dgraph.io) with us and
we can set you up with a commercial or enterprise license.

If use of our drivers under the Apache 2.0 or the database under the AGPL v3
does not satisfy your organization's legal department, commercial licenses are
available as well. Please [contact us](mailto:contact@dgraph.io) for more
details.

## Trademark

Dgraph is a registered trademark of Dgraph Labs, Inc.
