Mbed-TLS/mbedtls

An open source, portable, easy to use, readable and flexible TLS library, and reference implementation of the PSA Cryptography API. Releases are on a...

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 52 minutes ago
Added to GitGenius on September 9th, 2026
Created on November 14th, 2012
Open Issues & Pull Requests: 1,719 (+0)
GitHub issues: Enabled
Number of forks: 2,967
Total Stargazers: 6,954 (+0)
Total Subscribers: 202 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 47.6 hours
Mean response time: 101.4 days
90th percentile: 252.6 days
Tracked items: 608

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 99% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Work labelled "bug" is answered fastest, typically in about 23 hours, while "api-break" waits about 4 weeks. 46% of tracked open issues have had no activity in three months. Only 2% of issues opened in the past year have been closed.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 393
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 570 days
Stale 30+ days: 367
Stale 90+ days: 286

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 1
Events in 7 days: 1

Top labels

  • enhancement (259)
  • size-s (237)
  • bug (161)
  • component-crypto (106)
  • component-tls (104)
  • component-tls13 (104)
  • size-xs (94)
  • size-m (64)

Detailed Description

Mbed TLS is a C library that implements TLS and DTLS protocols along with X.509 certificate manipulation and serves as a reference implementation of the PSA Cryptography API.

The library addresses the need for cryptographic and TLS functionality in resource-constrained environments through a deliberately compact code footprint. It provides three linked libraries: libtfpsacrypto for cryptographic operations, libmbedx509 for certificate handling, and libmbedtls for the TLS protocol layer. Configuration is managed through header files in the include directory, with a Python script available for programmatic adjustment of compile-time options. The tool includes pre-built configurations in the configs directory targeting specific use cases.

Developers should choose this library when building embedded systems or applications where code size matters and standard TLS functionality is required. It suits projects that need X.509 certificate support alongside cryptographic primitives and can be integrated into systems using CMake-based builds. The library builds with a C99 toolchain and has been actively tested against GCC, Clang, Arm Compiler, and Visual Studio. Documentation is available through ReadTheDocs and can be generated locally using Doxygen to match a specific compile-time configuration.

The project maintains a structured development process with clearly defined tool version requirements aligned to long-term support releases of major Linux distributions. Testing infrastructure relies on Perl and Python, with the latter required for code generation on the development branch. The library's three-component architecture creates specific linker ordering requirements that developers need to account for depending on their toolchain. Build configuration flexibility is provided through both manual editing and scripted approaches, allowing adaptation to diverse deployment scenarios.