GPGME - the API to GnuPG

The recommended way to use the GnuPG crypto stack from your application is GPGME, which is written in C. Here is the online version of the manual.

A number of GPGME bindings for other programming languages/environments exist (Please point us to missing entries or corrections or add them directly in the wiki.):

All / C

official GPGME bindings

Coming with official GPGME releases are bindings for:

The current development versions can be found at git.gnupg.org gpgme/lang.

The GnuPG-Team supports these bindings.

Examples for how to use the bindings

Third-party GPGME bindings

C++ wrappers

C# (c-sharp) wrappers

Java wrappers

PHP wrappers

Python wrappers

Use official python-gpg bindings from GPGME based on PyME, see above. We just document historic alternatives here:

Ruby wrappers

Rust wrappers

(not recommended) calling executables directly

A number of elder applications call GnuPG executables in a subprocess and interact with them via command line arguments and file-descriptors. This is less perferable to GPGME, because the command line arguments and text outputs are not an (official) API to GnuPG. While there is an effort made to keep them stable, using the official GPGME API can manage this more precisely and thus you end up with a more robust solution.

C# (c-sharp)

Objective-C

PHP

Python

APIs (last edited 2024-06-17 14:47:58 by bernhard)