CDK Java Libraries
for Cheminformatics

The Chemistry Development Kit (CDK) is collection of modular Java libraries for processing chemical information (cheminformatics). The modules are free and open-source and is easily integrated with other open-source or in-house projects. The toolkit has been actively developed for more than 16 years and has more than 90 contributors. Functionality is provided for many areas in cheminformatics including:



The following resources can be used to learn the CDK API. The API describes the classes and methods in details, while the other resources show code snippets. The mailing list is also a good resource of answers.


The easiest way to get the CDK and keep up to date with the latest features is by using the Maven build system. The CDK modules and their dependencies are automatically fetched from the central repository and installed during compilation of your code.

To include the all library modules in your project add cdk-bundle (left) to your pom.xml. Once familiar with the library it's good practise to only include the modules your project needs (e.g. cdk-smiles).

If you're not using Maven you can download the bundled cdk-{VERSION}.jar for the latest release.

get involved

We welcome contributions and feedback however big or small.

keep updated

There are plenty of ways to stay updated with CDK project. You can follow us on GitHub, Twitter, or Google Plus. In addition to social media the best way to ask for help is on the cdk-user mailing list. You can often find updates on new project functionality and usage tips on the developer's blog entries.


If you find an issue when using the CDK or would like to request a new feature please report this via GitHub.


CDK is built with Maven, you'll need to download and install the Maven Build Tool, mvn. Once Maven is installed, the whole project can be compiled, tested, and installed with the command mvn install.
$> mvn install

If you just want to use the very latest version, pre-release builds are available as from the OSSRH snapshot repository. To use these builds add the repository to your pom.xml and change the version to a -SNAPSHOT or LATEST.


To submit patches please create a pull request via GitHub. To keep things organised please use a separate topic branch for each pull request. This will avoid including unrelated changes from elsewhere with the subject of the patch. For more information on how to create pull requests see GitHub's Documentation.


Journal articles about CDK: If you wish to cite the use of CDK please reference the above journal articles. Use of a specific version (since 1.5.7) can also be cited by DOI provided by Zenodo.


GNU Lesser General Public License, version 2.1 (or later).

The LGPL is compatible with other major open-source licenses. Since Java libraries are dynamically linked there is no restriction in using CDK in propitiatory software (see the FSF's LGPL and Java). Keep in mind that libraries that parts of the CDK depend on have their own licenses.

other projects

The CDK functionality underpins many exciting open and commercial projects. Here are some of our favourites:

Applications | Easy to use programs that solve a particular task Toolboxes | Extend or enhance the CDK functionality