Size: 232
Comment: added python wrappers
|
Size: 2628
Comment: intro phrasing improved
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
The recommended way to use the ~GnuPG crypto stack from your application is ~GPGME. | = GPGME - an API to GnuPG The recommended way to use the ~GnuPG crypto stack from your application is ~G~PGME, which is written in C. Here is the [[https://www.gnupg.org/documentation/manuals/gpgme/|online version of the manual (maybe out of date)]]. A number of ~G~PGME bindings for other programming languages/environments exist (Please add point us to missing entries or corrections.): == All / C == * [[https://www.gnupg.org/gpgme.html|gpgme]] (~GPG Made Easy) is the official GnuPG API. It is implemented in C itself, but this is what you should use from your language as well. == C++ wrappers == * http://quickgit.kde.org/?p=kdepimlibs.git gpgme++ is a wrapper for gpgme in kdepimlibs == C# (c-sharp) wrappers * [[http://danm.de/index.php?action=source|gpgme-sharp]] in alpha for 32bit windows (as of 2014-09). == Java wrappers == * [[https://github.com/guardianproject/gnupg-for-java|GnuPG-for-Java]] is a Java wrapper for gpgme >=1.5 and GnuPG >=2.x * [[https://github.com/smartrevolution/gnupg-for-java|GnuPG-for-Java]] is a Java wrapper for gpgme and GnuPG 1.x * [[https://github.com/guardianproject/gnupg-for-android|Gnu Privacy Guard]] is an Android app based [[https://github.com/guardianproject/gnupg-for-java|GnuPG-for-Java]] and gpgme to provide a GnuPG engine in Android |
Line 5: | Line 34: |
* http://pyme.sourceforge.net/ SWIG generated wrapper | * [[https://bitbucket.org/malb/pyme|pyme]] ~SWIG generated wrapper for python2 (continuation of the [[http://pyme.sourceforge.net/|old version]]) * [[http://git.gnupg.org/cgi-bin/gitweb.cgi?p=gpgme.git;a=shortlog;h=refs/heads/pyme|pyme for python3]] ~SWIG generated wrapper for python3, port of pyme 0.9 (see gnupg-devel mailinglist 2015-05 and newer) |
Line 7: | Line 37: |
== Ruby wrappers == * [[https://github.com/ueno/ruby-gpgme|ruby-gpgme]] is a ruby wrapper, which can be installed with: gem install gpgme. = (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 ~G~PGME, because the **command line arguments and text outputs are not an (official) API** to ~G~nuPG. While there is an effort made to keep them stable, using the official ~G~PGME API can manage this more precisely and thus you end up with a more robust solution. == Objective-C == * [[https://github.com/GPGTools/Libmacgpg|Libmacgpg]] is a Mac OS X Framework built on top of GnuPG (but not gpgme), used as part of the [[https://gpgtools.org/|GPGTools suite]]. |
GPGME - an 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 (maybe out of date).
A number of GPGME bindings for other programming languages/environments exist (Please add point us to missing entries or corrections.):
All / C
- gpgme (GPG Made Easy) is the official GnuPG API. It is implemented in C itself, but this is what you should use from your language as well.
C++ wrappers
- http://quickgit.kde.org/?p=kdepimlibs.git gpgme++ is a wrapper for gpgme in kdepimlibs
C# (c-sharp) wrappers
- gpgme-sharp in alpha for 32bit windows (as of 2014-09).
Java wrappers
- GnuPG-for-Java is a Java wrapper for gpgme >=1.5 and GnuPG >=2.x
- GnuPG-for-Java is a Java wrapper for gpgme and GnuPG 1.x
- Gnu Privacy Guard is an Android app based GnuPG-for-Java and gpgme to provide a GnuPG engine in Android
Python wrappers
- pyme SWIG generated wrapper for python2 (continuation of the old version)
- pyme for python3 SWIG generated wrapper for python3, port of pyme 0.9 (see gnupg-devel mailinglist 2015-05 and newer)
- https://launchpad.net/pygpgme manually written wrapper in C
Ruby wrappers
- ruby-gpgme is a ruby wrapper, which can be installed with: gem install gpgme.
(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.
Objective-C
- Libmacgpg is a Mac OS X Framework built on top of GnuPG (but not gpgme), used as part of the GPGTools suite.