A type-safe, functional general-purpose security and cryptography library for Scala.
TSEC is a type-safe, functional general-purpose security and cryptography library for Scala. It provides compile-time safety for cryptographic operations including password hashing, encryption, digital signatures, and JWT implementation. The library aims to prevent common security mistakes through Scala's type system and functional programming principles.
Scala developers building secure applications who want type-safe cryptographic operations and functional programming patterns. Particularly useful for teams working on web applications, APIs, or any system requiring robust security implementations.
Developers choose TSEC for its strong type safety guarantees that catch cryptographic errors at compile time, its comprehensive coverage of security needs in one library, and its functional design that integrates well with Cats-based Scala ecosystems.
Type-safe general-cryptography library - https://jmcardon.github.io/tsec/
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses Scala's type system to prevent common cryptographic errors at compile time, as emphasized in the library's philosophy and key features.
Includes password hashing, symmetric encryption, digital signatures, and JWT implementation, covering a wide range of security needs in one package.
Offers both JCA and Bouncy Castle backends for cryptographic operations, providing flexibility and choice as listed in the modules table.
Provides a nicely-typed JNI bridge for Libsodium's modern cryptographic primitives, enhancing security with advanced algorithms.
Includes request authentication and authorization modules for HTTP4s applications, facilitating secure web development with specific examples provided.
Explicitly states 'Windows is not supported,' which limits development and deployment options for teams on that platform.
Milestone releases do not guarantee binary compatibility or no API-breakage, as noted in the versioning policy, making it risky for production use.
Requires multiple dependencies like Cats and SLF4J bindings, with many separate modules (e.g., tsec-common, tsec-password), increasing project complexity.