A simple, semantic, and developer-friendly cryptographic library for Go, supporting encoding, hashing, encryption, and digital signatures.
Dongle is a Go package that provides a unified, chainable API for cryptographic operations, including encoding, hashing, symmetric and asymmetric encryption, and digital signatures. It simplifies security implementations by offering a clean, intuitive interface that reduces boilerplate code and minimizes errors. The package supports a wide range of algorithms and output formats, making it a comprehensive crypto utility for Go applications.
Go developers who need to implement cryptographic functions such as encoding, hashing, encryption, or digital signatures in their applications, particularly those seeking a consistent and developer-friendly API to avoid low-level complexity.
Developers choose Dongle for its semantic, chainable API that unifies diverse crypto operations under a single interface, reducing learning curves and code verbosity. Its 100% test coverage and inclusion in awesome-go ensure reliability and community trust, while flexible configuration options maintain control over cryptographic parameters.
A simple, semantic and developer-friendly crypto package for golang
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides a consistent, semantic interface for encoding, hashing, encryption, and signatures, drastically reducing boilerplate code as shown in the quick start examples with method chaining like .FromString().ByBase64().ToString().
Includes common cryptographic operations such as Base64 encoding, MD5/SHA hashing, AES symmetric encryption, and RSA asymmetric encryption with digital signatures, covering most developer needs in one package.
Allows easy conversion of results to hex strings, base64 strings, or raw bytes, demonstrated in examples like .ToHexString() and .ToBase64String() for seamless integration.
Maintains 100% unit test coverage, is included in awesome-go, and has won awards like GVP, ensuring correctness and community trust.
Lacks support for newer cryptographic standards like SHA-3 or Elliptic Curve Cryptography (ECC) beyond RSA, limiting its use in forward-looking or performance-sensitive applications.
Setting up ciphers requires multiple steps (e.g., creating cipher objects, setting keys, IVs, padding modes), which can be cumbersome for simple tasks compared to more streamlined libraries.
The project has moved repositories (from golang-module/dongle to dromara/dongle), causing potential breaking changes and maintenance issues for existing users, as noted in the README.