adiog / gpgmepp Goto Github PK
View Code? Open in Web Editor NEWThis project forked from kde/gpgmepp
This repository has no description
License: GNU Lesser General Public License v2.1
This project forked from kde/gpgmepp
This repository has no description
License: GNU Lesser General Public License v2.1
GpgME++ - C++ bindings/wrapper for gpgme ------------------------------------ Version 0.0.1 Copyright (c) 2003, 2004 Klarälvdalens Datakonsult AB This file is free software; as a special exception the author gives unlimited permission to copy and/or distribute it, with or without modifications, as long as this notice is preserved. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY, to the extent permitted by law; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Overview -------- GpgME++ is a C++ wrapper (or C++ bindings) for the GnuPG project's gpgme (GnuPG Made Easy) library, version 0.4.4 and later. It is fairly complete, with some minor things still missing (in particular, the key edit interface). It is mostly tested using external event loops, for which its design is optimised. The design principles of this library are as follows: 1. A value-based interface (most clases are implicitly shared) 2. Callbacks are replaced by C++ interfaces (classes with only abstract methods). 3. No exceptions are thrown 4. There is (as yet) no explicit support for multi-threaded use (other than what gpgme itself provides; most notably the refcounting for implicit sharing is not thread-safe) 5. To avoid binary incompatible interface changes, we make extensive use of the d-pointer pattern and avoid virtual methods; any polymorphism present is already provided by gpgme itself, anyway (see e.g. Data). A notable exception of the no-virtuals rule is the use of abstract classes to cover C-callbacks. The authors hope that once there are more users of this library, the GnuPG project will include it as the official C++ binding for gpgme. Currently, this is not the case, since it was felt that C++ bindings can be provided with different design decisions, and that it is not clear that the decisions made for GpgME++ are broad enough to be universally applicable (e.g. a pivotal design decision was to not use exceptions to wrap gpgme_error_t). GpgME++ depends on gpgme, which in turn depends on libgpg-error, both of which must be installed correctly before GpgME++ is to be built. Furthermore, GpgME++ should be recompiled if the underlying gpgme is changed. This is to allow closer integration and to abstract away possible interface changes. Therefore, once this libray becomes stable, we intend to follow gpgme's versioning. Currently, we use the KDE CVS repository to develop our code, basically because GpgME++ is used in KMail and Kleopatra. However, the library is in no way dependant on KDE or Qt libraries, and you are free to use it in your own projects, provided you follow the license. If you _do_ want to use GpgME++ in Qt/KDE applications, have a look at QGpgME, which provides integration with QEventLoop and some Qt datatypes (e.g. QByteArray). Mailing List ------------ Discussion of this library and questions regarding it's use and design should happen on [email protected] or [email protected]. License ------- This library is licensed under the GNU Library General Public License (LGPL), just as gpgme is. We feel that using a different license than the one gpgme itself uses doesn't make sense.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.