aws / aws-lc
git clone https://github.com/aws/aws-lc.git
v5.11.0 · 20d ago
🔥 on GitHub Trending today
AWS-LC is a general-purpose cryptographic library maintained by the AWS Cryptography team for AWS and their customers. It іs based on code from the Google BoringSSL project and the OpenSSL project.
+2
stars, 24h · #5,087
+~14
stars, 7 days · #5,838
+~60
stars, 30 days · #7,898
848
★ total · +2% this week
226
forks · 115 open issues
Star history (as recorded here)
LanguageAssembly
License—
Created2020-05-14 (6y ago)
Last pushtoday
Watchers21
OwnerOrganization
Seen on GitHub Trending
- 2026-10-22 — #5 daily in assembly · +3 ★
- 2026-10-21 — #10 daily in assembly
- 2026-10-20 — #10 daily in assembly · +2 ★
Links
- GitHub: github.com/aws/aws-lc
- Homepage: https://aws.github.io/aws-lc/headers.html
- Releases · Issues · Hacker News mentions
README excerpt
# AWS libcrypto (AWS-LC) AWS-LC is a general-purpose cryptographic library maintained by the AWS Cryptography team for AWS and their customers. It іs based on code from the Google BoringSSL project and the OpenSSL project. AWS-LC contains portable C implementations of algorithms needed for TLS and common applications. For performance critical algorithms, optimized assembly versions are included for x86 and ARM. ## Quickstart for Amazon Linux 2 AWS-LC’s libcrypto is a C library and needs a C compiler. AWS-LC's libssl is a C++ library and needs a C++ compiler. Fork AWS-LC on GitHub and run the following commands to build AWS-LC with optimizations and debug info, run all tests, and install it: [code] See Building.md for more information about required dependencies and build options. If you’re interested in getting involved open an issue to discuss your plan. Contributing.md has info for how to specifically make the change and get it reviewed by AWS-LC maintainers. If you just want to use AWS-LC, see our existing documentation in the public header files. If you’re moving your application from OpenSSL, see the porting guide for more information. ## Why AWS-LC? AWS-LC's goal is to maintain a secure libcrypto that is compatible with software and applications used at AWS. AWS-LC also serves as the new home for the AWS Cryptography team to publish open source contributions and enhancements that are submitted to other libcrypto projects. ## AWS-LC features ### API Compatibility AWS-LC is compatible with the majority of OpenSSL’s APIs to make it easy to use with existing applications. We’re open to discussing adding missing functionality and understanding your use case in an issue. ### Algorithm optimization support A portable C implementation of all algorithms is included and optimized assembly implementations of select algorithms is included for some x86 and Arm CPUs. We use AWS Graviton processors to test ARMv8 optimizations and Intel CPUs to test x86 and x86-64 optimizations. The Intel Software Development Emulator is used to run tests on many different x86 processors. If you use another CPU and would like to make sure we test it or discuss adding an assembly optimized algorithm implementation, please open an issue to discuss adding it to our CI. ### Distribution Packaging AWS-LC supports distribution packaging mode for system-wide installation on Linux and BSD systems. When built with `-DENABLE_DIST_PKG=1`, AWS-LC enables: - **SONAME versioning**: Libraries use standard SONAME (e.g., `libcrypto-awslc.so.1`) - **Symbol versioning**: ELF symbol versioning for ABI stability tracking (e.g., `AWS_LC_1.0`) - **Cohabitant headers**: Headers installed to `include/aws-lc/openssl/` to coexist with other crypto libraries Symbol versioning assigns every public API symbol to a named version node. New symbols introduced in future releases get new version nodes that inherit from their predecessors, enabling fine-grained compatibility tracking. It defaults to on in