PackageTrack
Sign in Get early access

clang-sys

Rust bindings for libclang.

1.9.1 286M downloads/mo #375 most downloaded on crates.io KyleMayes/clang-sys

What this package is like to depend on

Last release 25 days ago

29 Jul 2026

Release timing varies

gaps range from 1 weeks to 1.8 years

Nearly every release is documented

notes for 77 of 78 stable releases

7 versions withdrawn

withdrawn after publishing

11 years old

85 releases · first in 2015

1 release in the last 12 months

see the full history below

Release timeline

85 releases · Dec 2015 to Jul 2026
2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 60 of 85
  1. 1.9.1 29 Jul 2026
    Release notes

    Added

    • Added support for clang 19.0.x
    • Added support for clang 20.0.x
    • Added rewriter API.

    Changed

    • Search for libraries in LIBRARY_PATH in addition to LD_LIBRARY_PATH.

    Fixed

    • Reverted executable search that caused header search path failure on macOS.
    • Improved Visual Studio search paths.
    • Improved support for Cygwin.
    Open source →
    Release notes

    Added

    • Added support for clang 19.0.x
    • Added support for clang 20.0.x
    • Added rewriter API.

    Changed

    • Search for libraries in LIBRARY_PATH in addition to LD_LIBRARY_PATH.

    Fixed

    • Reverted executable search that caused header search path failure on macOS.
    • Improved Visual Studio search paths.
    • Improved support for Cygwin.
    Open source →
  2. 1.9.0 25 Sep 2024 withdrawn
    Release notes

    Changed

    • Added --link-static flag when listing static libraries to link to
    Open source →
    Release notes

    Changed

    • Added --link-static flag when listing static libraries to link to
    Open source →
  3. 1.8.2 30 May 2024 withdrawn
    Release notes

    Changed

    • Improved Clang::find to first check directories related to the runtime-loaded libclang instance (if any)

    Fixed

    • Fixed linking to libclang on Windows with MSYS2
    • Fixed Clang::find to support both the -target and --target arguments
      when using target-prefixed clang binaries
    Open source →
    Release notes

    Fixed

    • Fixed linking to libclang on Windows with MSYS2
    • Fixed Clang::find to support both the -target and --target arguments when using target-prefixed clang binaries
    Open source →
  4. 1.8.1 29 May 2024
    Release notes

    Added

    • Added support for clang 18.0.x

    Fixed

    • Improve DLL search on Windows to take target architecture into account (e.g., ARM64 vs x86-64)
    • Improved detection of libclang installed with Visual Studio on Windows
    Open source →
    Release notes

    Added

    • Added support for clang 18.0.x

    Fixed

    • Improve DLL search on Windows to take target architecture into account (e.g., ARM64 vs x86-64)
    • Improved detection of libclang installed with Visual Studio on Windows
    Open source →
  5. 1.8.0 27 May 2024
    Release notes

    Changed

    • Bumped minimum supported Rust version (MSRV) to 1.60.0
    • Added error logging when CLANG_PATH set but it isn't a full path to an executable
    • Removed reference to libclang 3.5 in error message for attempting to call an unsupported function

    Added

    • Added libcpp Cargo feature which enables linking to libc++ instead of libstdc++ when linking to libclang statically on Linux or Haiku

    Fixed

    • Fixed handling of paths that contain characters that have special meaning in
      glob patterns (e.g., [ or ])
    • Fixed Clang::find to support both the -target and --target arguments
      when using target-prefixed clang binaries
    Open source →
    Release notes

    Changed

    • Bumped minimum supported Rust version (MSRV) to 1.60.0
    • Added error logging when CLANG_PATH set but it isn't a full path to an executable
    • Removed reference to libclang 3.5 in error message for attempting to call an unsupported function

    Added

    • Added libcpp Cargo feature which enables linking to libc++ instead of libstdc++ when linking to libclang statically on Linux or Haiku

    Fixed

    • Fixed handling of paths that contain characters that have special meaning in glob patterns (e.g., [ or ])
    Open source →
  6. 1.7.0 31 Dec 2023
    Release notes

    Added

    • Added support for clang 17.0.x
    Open source →
    Release notes

    Added

    • Added support for clang 17.0.x
    Open source →
  7. 1.6.1 30 Mar 2023
    Release notes

    Fixed

    • Improved error message when calling a libclang function that is not supported by the loaded libclang instance (rust-lang/rust-bindgen#2446)
    Open source →
    Release notes

    Fixed

    • Improved error message when calling a libclang function that is not supported by the loaded libclang instance (https://github.com/rust-lang/rust-bindgen/issues/2446)
    Open source →
  8. 1.6.0 18 Feb 2023
    Release notes

    Changed

    • MinGW directories are not searched for libclang instances on Windows when
      compiling for an MSVC target
    • Bumped minimum supported Rust version (MSRV) to 1.51.0
    • Changed Windows search directory preferences (libclang instances from
      Visual Studio installs are now the lowest priority rather than the second
      highest)
    Open source →
    Release notes

    Changed

    • MinGW directories are not searched for libclang instances on Windows when compiling for an MSVC target
    • Bumped minimum supported Rust version (MSRV) to 1.51.0
    • Changed Windows search directory preferences (libclang instances from Visual Studio installs are now the lowest priority rather than the second highest)
    Open source →
  9. 1.5.1 05 Feb 2023 withdrawn
    Release notes

    Changed

    • MinGW directories are not searched for libclang instances on Windows when compiling for an MSVC target
    Open source →
  10. 1.5.0 05 Feb 2023 withdrawn
    Release notes

    Changed

    • Bumped minimum supported Rust version (MSRV) to 1.51.0
    • Changed Windows search directory preferences (libclang instances from Visual Studio installs are now the lowest priority rather than the second highest)

    Added

    • Added additional support for clang 16.0.x
    Open source →
  11. 1.4.0 22 Sep 2022
    Release notes

    Changed

    • The value of an EntityKind enum variant (EntityKind::CXCursor_TranslationUnit) has been updated for Clang 15.0 and later to match the breaking change made in libclang

    Added

    • Added support for clang 16.0.x
    • Added support for clang 15.0.x
    • Added support for clang 14.0.x
    Open source →
  12. 1.3.3 28 May 2022
    Release notes

    Fixed

    • Fixed Clang::find to check that CLANG_PATH is an executable file before selecting it
    Open source →
  13. 1.3.2 18 May 2022
    Release notes

    Added

    • Added support for illumos and derivatives
    Open source →
  14. 1.3.1 04 Feb 2022
    Release notes

    Added

    • Added missing clang_getToken function
    Open source →
  15. 1.3.0 01 Nov 2021
    Release notes

    Added

    • Added support for clang 13.0.x
    • Added support for clang 12.0.x
    • Added support for the Haiku operating system
    Open source →
  16. 1.2.2 03 Sep 2021
    Release notes

    Fixed

    • Fixed handling of paths that contain characters that have special meaning in glob patterns (e.g., [ or ])
    Open source →
  17. 1.2.1 24 Aug 2021
    Release notes

    Changed

    • Updated build script to check the install location used by the Scoop command-line installer on Windows

    Fixed

    • Updated build script to support environments where the PATH environment variable is not set
    Open source →
  18. 1.2.0 08 Apr 2021
    Release notes

    Changed

    • Changed Clang::find to prefer target-prefixed binaries when a -target argument is provided (e.g., if the arguments -target and x86_64-unknown-linux-gnu are provided, a target-prefixed Clang executable such as x86_64-unknown-linux-gnu-clang will be preferred over a non-target prefixed Clang executable)

    Fixed

    • Fixed build script to split paths in environment variables (e.g., LD_LIBRARY_PATH) using the appropriate separator for the platform (previously : was used as the separator but some platforms such as Windows use ;)
    Open source →
  19. 1.1.1 20 Feb 2021
    Release notes

    Changed

    • Bumped libloading version to 0.7
    Open source →
  20. 1.1.0 10 Feb 2021
    Release notes

    Changed

    • Added Visual Studio LLVM component directory to search paths on Windows (#121)

    Added

    • Added support for clang 11.0.x
    Open source →
  21. 1.0.3 19 Nov 2020
    Release notes

    Fixed

    • Fixed Clang::find panicking when llvm-config or xcode-build don't output anything to stdout
    Open source →
  22. 1.0.2 17 Nov 2020
    Release notes

    Fixed

    • Fixed Clang::find to properly search directories returned by the llvm-config --bindir and xcodebuild -find clang commands
    • Improved version selection algorithm in the case where there are multiple instances of libclang with the highest version found; previously the lowest priority instance would be selected instead of the highest priority instance (e.g., the versions found by searching the fallback directories were preferred over the versions found by searching the llvm-config --prefix directory)
    Open source →
  23. 1.0.1 01 Oct 2020
    Release notes

    Changed

    • Improved panic error message when calling an unloaded function
    Open source →
  24. 1.0.0 14 Jul 2020
    Release notes

    Changed

    • Bumped libloading version to 0.6.0
    • Updated build script to not print warnings about failures to execute llvm-config and xcode-select unless an instance of libclang is not found

    Added

    • Added support for clang 10.0.x

    Removed

    • Removed gte_clang_* Cargo features (these were an implementation detail)
    Open source →
  25. 0.29.4 14 Jul 2020 withdrawn

    Nothing published for this version

  26. 0.29.3 31 Mar 2020
    Release notes

    Added

    • Added ability to determine version of runtime-linked instance of libclang
    Open source →
  27. 0.29.2 10 Mar 2020
    Release notes

    Added

    • Revert unnecessary increase of minimum version of libc and libloading
    Open source →
  28. 0.29.1 06 Mar 2020
    Release notes

    Added

    • Added support for finding instances of libclang matching libclang-*.so.*
    Open source →
  29. 0.29.0 18 Feb 2020
    Release notes

    Changed

    • Wrapped function pointer fields in Option in the CXCursorAndRangeVisitor and IndexerCallbacks structs (to permit nullability and to avoid undefined behavior caused by Default implementations for these structs which returns a zeroed value)

    Added

    • Added support for clang 9.0.x
    • Added missing CXCallingConv_AArch64VectorCall variant to CXCallingConv enum
    • Added missing clang_CompileCommand_getNumMappedSources function
    Open source →
  30. 0.28.2 14 Jul 2020 withdrawn

    Nothing published for this version

  31. 0.28.1 28 Jul 2019
    Release notes

    Changed

    • Bumped glob version to 0.3.0
    • Improved error message when an invocation of an executable is not successful
    • Allowed LIBCLANG_PATH to refer to a specific libclang instance (e.g., /usr/local/lib/libclang.so.10)

    Fixed

    Open source →
  32. 0.28.0 17 Feb 2019
    Release notes

    Changed

    • Changed llvm-config to be first search candidate on macOS

    Added

    • Added support for clang 8.0.x

    Removed

    • Removed assert-minimum feature
    • Removed version detection for libraries without versions embedded in the filename
    Open source →
  33. 0.27.1 14 Jul 2020 withdrawn

    Nothing published for this version

  34. 0.27.0 10 Jan 2019
    Release notes

    Changed

    • Added version detection for libraries without versions embedded in the filename

    Added

    • Added assert-minimum feature (see README.md for details)
    Open source →
  35. 0.26.4 29 Dec 2018
    Release notes

    Changed

    • Added shared library path to SharedLibrary struct
    Open source →
  36. 0.26.3 14 Nov 2018
    Release notes

    Changed

    • Disable default features of libc dependency
    Open source →
  37. 0.26.2 04 Nov 2018
    Release notes

    Fixed

    • Fixed dynamic linking on macOS
    Open source →
  38. 0.26.1 10 Oct 2018
    Release notes

    Fixed

    • Fixed support for finding libraries in bin directories on Windows
    Open source →
  39. 0.26.0 07 Oct 2018
    Release notes

    Changed

    • Added support for finding libraries with version suffixes on Linux when using runtime linking (e.g., libclang.so.1)
    Open source →
  40. 0.25.0 06 Oct 2018
    Release notes

    Changed

    • Added support for versioned libraries on BSDs
    Open source →
  41. 0.24.0 15 Sep 2018
    Release notes

    Changed

    • Reworked finding of libraries (see README.md for details)

    Added

    • Added support for clang 7.0.x
    Open source →
  42. 0.23.0 16 Jun 2018
    Release notes

    Changed

    • Changed Clang::find to skip dynamic libraries for an incorrect architecture on Windows
    Open source →
  43. 0.22.0 12 Mar 2018
    Release notes

    Added

    • Added support for clang 6.0.x
    • Bumped libc version to 0.2.39
    • Bumped libloading version to 0.5.0
    Open source →
  44. 0.21.2 17 Feb 2018
    Release notes

    Changed

    • Added original errors to error messages
    • Added support for searching for libraries in LD_LIBRARY_PATH directories
    Open source →
  45. 0.21.1 24 Nov 2017
    Release notes

    Changed

    • Improved finding of versioned libraries (e.g., libclang-3.9.so)

    Fixed

    • Fixed compilation failures on the beta and nightly channels caused by a compiler bug
    Open source →
  46. 0.21.0 11 Oct 2017
    Release notes

    Changed

    • Replaced bitflags usage with constants which avoids crashes on 32-bit Linux platforms
    Open source →
  47. 0.20.1 16 Sep 2017
    Release notes

    Fixed

    • Fixed static linking
    Open source →
  48. 0.20.0 15 Sep 2017
    Release notes

    Added

    • Added support for clang 5.0.x
    • Added clang as a link target of this package
    • Added dummy implementations of is_loaded for builds with the static Cargo feature enabled
    Open source →
  49. 0.19.0 02 Jul 2017
    Release notes

    Changed

    • Bumped bitflags version to 0.9.1
    • Added args parameter to Clang::new function which passes arguments to the Clang executable
    Open source →
  50. 0.18.0 17 May 2017
    Release notes

    Changed

    • Improved finding of versioned libraries (e.g., libclang.so.3.9)
    Open source →
  51. 0.17.0 08 May 2017
    Release notes

    Changed

    • Changed storage type of include search paths from Vec<PathBuf> to Option<Vec<PathBuf>>
    Open source →
  52. 0.16.0 02 May 2017
    Release notes

    Changed

    • Bumped libloading version to 0.4.0
    Open source →
  53. 0.15.2 28 Apr 2017
    Release notes

    Fixed

    • Fixed finding of libclang.so.1 on Linux
    Open source →
  54. 0.15.1 29 Mar 2017
    Release notes

    Fixed

    Open source →
  55. 0.15.0 14 Mar 2017
    Release notes

    Added

    • Added support for clang 4.0.x

    Changed

    • Changed functions in the Functions struct to be unsafe (runtime feature only)
    • Changed Clang::find method to ignore directories and non-executable files
    • Changed Clang::find to skip dynamic libraries for an incorrect architecture on FreeBSD and Linux
    • Bumped bitflags version to 0.7.0
    Open source →
  56. 0.14.1 28 Apr 2017

    Nothing published for this version

  57. 0.14.0 30 Jan 2017
    Release notes

    Changed

    • Changed all enum types from tuple structs to raw integers to avoid segmentation faults on some platforms
    Open source →
  58. 0.13.0 30 Jan 2017
    Release notes

    Changed

    • Changed all opaque pointers types from tuple structs to raw pointers to avoid segmentation faults on some platforms
    Open source →
  59. 0.12.0 14 Dec 2016
    Release notes

    Changed

    • Altered the runtime linking API to allow for testing the presence of functions
    Open source →
  60. 0.11.1 07 Dec 2016
    Release notes

    Added

    • Added support for linking to Clang on Windows from unofficial LLVM sources such as MSYS and MinGW
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive