geekcell/sodium-bundle
GeekCell Sodium Bundle integrates PHP's Sodium extension with Symfony, providing configurable services for authenticated encryption, decryption, password hashing, and secure random bytes. It simplifies using libsodium's modern cryptography in your applications.
sodium_* functions, not a cryptographic implementation. The build-vs-buy math is unchanged: the encryption capability comes from the PHP runtime we already ship.Crypt facade already provides authenticated encryption with key rotation via APP_PREVIOUS_KEYS; a bespoke Sodium layer remains a solution in search of a problem for our stack.Adoption criteria (all would need to hold):
^6.0 | ^7.0; the bundle machinery is still unconsumable from Laravel, and a hand-written service provider would import the dependency while discarding the only thing that makes it a bundle.Look elsewhere when:
Crypt::encryptString() / the encrypted Eloquent cast. Zero new dependencies, framework-native key rotation, well-trodden.sodium_crypto_secretbox() or sodium_crypto_aead_xchacha20poly1305_ietf() directly. The Sodium extension ships with PHP 7.2+.sodium_crypto_box_seal), password hashing/KDF (sodium_crypto_pwhash), or a maintained higher-level library such as paragonie/halite (Symfony-friendly, versioned ciphertext, key rotation) or defuse/php-encryption.To executives: Recommendation stands — do not adopt. The v1.0.3 release is housekeeping (PHP 8.2 floor, Symfony 7 compatibility, test/CI config) with no new capability. The package is still a single-maintainer Symfony wrapper around encryption functions that ship inside PHP, contributing on the order of tens of lines of dependency-injection glue. Adoption would transfer indefinite maintenance and patching responsibility to us for near-zero saved effort. Laravel's built-in encryption or direct Sodium calls deliver the same capability with no new supply-chain surface. One nuance worth stating plainly: the dependency is not abandoned, it is minimally maintained — which for an encryption-path dependency is the same practical answer.
To engineering: Nothing in 1.0.3 changes the integration story. It is Symfony-shaped and Symfony-versioned; wiring it into Laravel means importing the package and bypassing the bundle. The version bump also raises our minimum PHP to 8.2, which is a real constraint if anything in the fleet is still on 8.1. Implement natively: sodium_crypto_secretbox is a two-function call, and a Laravel service provider around it can be written with the key rotation and ciphertext versioning we actually need — which this package still does not offer.
Cost/risk framing: Roughly 1–2 engineer-days to implement natively and correctly, versus a minimally maintained dependency in the encryption path for the life of the product. The 1.0.3 release does not reduce that risk; it only defers the question.
Recommendation: Reject for adoption — unchanged. Record the evaluation as a completed build-vs-buy exercise. If a Sodium-based requirement appears later, evaluate paragonie/halite or a first-party implementation, not this bundle. Re-check this package only if it gains a security policy, multiple maintainers, or functional (not chore-only) releases.
How can I help you explore Laravel packages today?