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
Releases
latest 60 of 85-
1.9.129 Jul 2026Release notes
Open source →Added
- Added support for
clang19.0.x - Added support for
clang20.0.x - Added rewriter API.
Changed
- Search for libraries in
LIBRARY_PATHin addition toLD_LIBRARY_PATH.
Fixed
- Reverted executable search that caused header search path failure on macOS.
- Improved Visual Studio search paths.
- Improved support for Cygwin.
Release notes
Open source →Added
- Added support for
clang19.0.x - Added support for
clang20.0.x - Added rewriter API.
Changed
- Search for libraries in
LIBRARY_PATHin addition toLD_LIBRARY_PATH.
Fixed
- Reverted executable search that caused header search path failure on macOS.
- Improved Visual Studio search paths.
- Improved support for Cygwin.
- Added support for
-
1.9.025 Sep 2024 withdrawnRelease notes
Open source →Changed
- Added
--link-staticflag when listing static libraries to link to
Release notes
Open source →Changed
- Added
--link-staticflag when listing static libraries to link to
- Added
-
1.8.230 May 2024 withdrawnRelease notes
Open source →Changed
- Improved
Clang::findto first check directories related to the runtime-loadedlibclanginstance (if any)
Fixed
- Fixed linking to
libclangon Windows with MSYS2 - Fixed
Clang::findto support both the-targetand--targetarguments
when using target-prefixedclangbinaries
Release notes
Open source →Fixed
- Fixed linking to
libclangon Windows with MSYS2 - Fixed
Clang::findto support both the-targetand--targetarguments when using target-prefixedclangbinaries
- Improved
-
1.8.129 May 2024Release notes
Open source →Added
- Added support for
clang18.0.x
Fixed
- Improve DLL search on Windows to take target architecture into account (e.g., ARM64 vs x86-64)
- Improved detection of
libclanginstalled with Visual Studio on Windows
Release notes
Open source →Added
- Added support for
clang18.0.x
Fixed
- Improve DLL search on Windows to take target architecture into account (e.g., ARM64 vs x86-64)
- Improved detection of
libclanginstalled with Visual Studio on Windows
- Added support for
-
1.8.027 May 2024Release notes
Open source →Changed
- Bumped minimum supported Rust version (MSRV) to 1.60.0
- Added error logging when
CLANG_PATHset but it isn't a full path to an executable - Removed reference to
libclang3.5 in error message for attempting to call an unsupported function
Added
- Added
libcppCargo feature which enables linking tolibc++instead oflibstdc++when linking tolibclangstatically on Linux or Haiku
Fixed
- Fixed handling of paths that contain characters that have special meaning in
glob patterns (e.g.,[or]) - Fixed
Clang::findto support both the-targetand--targetarguments
when using target-prefixedclangbinaries
Release notes
Open source →Changed
- Bumped minimum supported Rust version (MSRV) to 1.60.0
- Added error logging when
CLANG_PATHset but it isn't a full path to an executable - Removed reference to
libclang3.5 in error message for attempting to call an unsupported function
Added
- Added
libcppCargo feature which enables linking tolibc++instead oflibstdc++when linking tolibclangstatically on Linux or Haiku
Fixed
- Fixed handling of paths that contain characters that have special meaning in
glob patterns (e.g.,
[or])
-
1.7.031 Dec 2023 -
1.6.130 Mar 2023Release notes
Open source →Fixed
- Improved error message when calling a
libclangfunction that is not supported by the loadedlibclanginstance (rust-lang/rust-bindgen#2446)
Release notes
Open source →Fixed
- Improved error message when calling a
libclangfunction that is not supported by the loadedlibclanginstance (https://github.com/rust-lang/rust-bindgen/issues/2446)
- Improved error message when calling a
-
1.6.018 Feb 2023Release notes
Open source →Changed
- MinGW directories are not searched for
libclanginstances on Windows when
compiling for an MSVC target - Bumped minimum supported Rust version (MSRV) to 1.51.0
- Changed Windows search directory preferences (
libclanginstances from
Visual Studio installs are now the lowest priority rather than the second
highest)
Release notes
Open source →Changed
- MinGW directories are not searched for
libclanginstances on Windows when compiling for an MSVC target - Bumped minimum supported Rust version (MSRV) to 1.51.0
- Changed Windows search directory preferences (
libclanginstances from Visual Studio installs are now the lowest priority rather than the second highest)
- MinGW directories are not searched for
-
1.5.105 Feb 2023 withdrawnRelease notes
Open source →Changed
- MinGW directories are not searched for
libclanginstances on Windows when compiling for an MSVC target
- MinGW directories are not searched for
-
1.5.005 Feb 2023 withdrawnRelease notes
Open source →Changed
- Bumped minimum supported Rust version (MSRV) to 1.51.0
- Changed Windows search directory preferences (
libclanginstances from Visual Studio installs are now the lowest priority rather than the second highest)
Added
- Added additional support for
clang16.0.x
-
1.4.022 Sep 2022Release notes
Open source →Changed
- The value of an
EntityKindenum variant (EntityKind::CXCursor_TranslationUnit) has been updated for Clang 15.0 and later to match the breaking change made inlibclang
Added
- Added support for
clang16.0.x - Added support for
clang15.0.x - Added support for
clang14.0.x
- The value of an
-
1.3.328 May 2022Release notes
Open source →Fixed
- Fixed
Clang::findto check thatCLANG_PATHis an executable file before selecting it
- Fixed
-
1.3.218 May 2022 -
1.3.104 Feb 2022 -
1.3.001 Nov 2021Release notes
Open source →Added
- Added support for
clang13.0.x - Added support for
clang12.0.x - Added support for the Haiku operating system
- Added support for
-
1.2.203 Sep 2021Release notes
Open source →Fixed
- Fixed handling of paths that contain characters that have special meaning in
glob patterns (e.g.,
[or])
- Fixed handling of paths that contain characters that have special meaning in
glob patterns (e.g.,
-
1.2.124 Aug 2021Release notes
Open source →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
PATHenvironment variable is not set
-
1.2.008 Apr 2021Release notes
Open source →Changed
- Changed
Clang::findto prefer target-prefixed binaries when a-targetargument is provided (e.g., if the arguments-targetandx86_64-unknown-linux-gnuare provided, a target-prefixed Clang executable such asx86_64-unknown-linux-gnu-clangwill 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;)
- Changed
-
1.1.120 Feb 2021 -
1.1.010 Feb 2021Release notes
Open source →Changed
- Added Visual Studio LLVM component directory to search paths on Windows (#121)
Added
- Added support for
clang11.0.x
-
1.0.319 Nov 2020Release notes
Open source →Fixed
- Fixed
Clang::findpanicking whenllvm-configorxcode-builddon't output anything tostdout
- Fixed
-
1.0.217 Nov 2020Release notes
Open source →Fixed
- Fixed
Clang::findto properly search directories returned by thellvm-config --bindirandxcodebuild -find clangcommands - Improved version selection algorithm in the case where there are multiple
instances of
libclangwith 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 thellvm-config --prefixdirectory)
- Fixed
-
1.0.101 Oct 2020 -
1.0.014 Jul 2020Release notes
Open source →Changed
- Bumped
libloadingversion to0.6.0 - Updated build script to not print warnings about failures to execute
llvm-configandxcode-selectunless an instance oflibclangis not found
Added
- Added support for
clang10.0.x
Removed
- Removed
gte_clang_*Cargo features (these were an implementation detail)
- Bumped
-
0.29.414 Jul 2020 withdrawnNothing published for this version
-
0.29.331 Mar 2020Release notes
Open source →Added
- Added ability to determine version of runtime-linked instance of
libclang
- Added ability to determine version of runtime-linked instance of
-
0.29.210 Mar 2020Release notes
Open source →Added
- Revert unnecessary increase of minimum version of
libcandlibloading
- Revert unnecessary increase of minimum version of
-
0.29.106 Mar 2020Release notes
Open source →Added
- Added support for finding instances of
libclangmatchinglibclang-*.so.*
- Added support for finding instances of
-
0.29.018 Feb 2020Release notes
Open source →Changed
- Wrapped function pointer fields in
Optionin theCXCursorAndRangeVisitorandIndexerCallbacksstructs (to permit nullability and to avoid undefined behavior caused byDefaultimplementations for these structs which returns a zeroed value)
Added
- Added support for
clang9.0.x - Added missing
CXCallingConv_AArch64VectorCallvariant toCXCallingConvenum - Added missing
clang_CompileCommand_getNumMappedSourcesfunction
- Wrapped function pointer fields in
-
0.28.214 Jul 2020 withdrawnNothing published for this version
-
0.28.128 Jul 2019Release notes
Open source →Changed
- Bumped
globversion to0.3.0 - Improved error message when an invocation of an executable is not successful
- Allowed
LIBCLANG_PATHto refer to a specificlibclanginstance (e.g.,/usr/local/lib/libclang.so.10)
Fixed
- Fixed
libclang-cppbeing linked instead oflibclang
- Bumped
-
0.28.017 Feb 2019Release notes
Open source →Changed
- Changed
llvm-configto be first search candidate on macOS
Added
- Added support for
clang8.0.x
Removed
- Removed
assert-minimumfeature - Removed version detection for libraries without versions embedded in the filename
- Changed
-
0.27.114 Jul 2020 withdrawnNothing published for this version
-
0.27.010 Jan 2019Release notes
Open source →Changed
- Added version detection for libraries without versions embedded in the filename
Added
- Added
assert-minimumfeature (seeREADME.mdfor details)
-
0.26.429 Dec 2018 -
0.26.314 Nov 2018 -
0.26.204 Nov 2018 -
0.26.110 Oct 2018 -
0.26.007 Oct 2018Release notes
Open source →Changed
- Added support for finding libraries with version suffixes on Linux when using runtime linking (e.g.,
libclang.so.1)
- Added support for finding libraries with version suffixes on Linux when using runtime linking (e.g.,
-
0.25.006 Oct 2018 -
0.24.015 Sep 2018Release notes
Open source →Changed
- Reworked finding of libraries (see
README.mdfor details)
Added
- Added support for
clang7.0.x
- Reworked finding of libraries (see
-
0.23.016 Jun 2018Release notes
Open source →Changed
- Changed
Clang::findto skip dynamic libraries for an incorrect architecture on Windows
- Changed
-
0.22.012 Mar 2018Release notes
Open source →Added
- Added support for
clang6.0.x - Bumped
libcversion to0.2.39 - Bumped
libloadingversion to0.5.0
- Added support for
-
0.21.217 Feb 2018Release notes
Open source →Changed
- Added original errors to error messages
- Added support for searching for libraries in
LD_LIBRARY_PATHdirectories
-
0.21.124 Nov 2017Release notes
Open source →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
- Improved finding of versioned libraries (e.g.,
-
0.21.011 Oct 2017Release notes
Open source →Changed
- Replaced
bitflagsusage with constants which avoids crashes on 32-bit Linux platforms
- Replaced
-
0.20.116 Sep 2017 -
0.20.015 Sep 2017Release notes
Open source →Added
- Added support for
clang5.0.x - Added
clangas a link target of this package - Added dummy implementations of
is_loadedfor builds with thestaticCargo feature enabled
- Added support for
-
0.19.002 Jul 2017Release notes
Open source →Changed
- Bumped
bitflagsversion to0.9.1 - Added
argsparameter toClang::newfunction which passes arguments to the Clang executable
- Bumped
-
0.18.017 May 2017 -
0.17.008 May 2017Release notes
Open source →Changed
- Changed storage type of include search paths from
Vec<PathBuf>toOption<Vec<PathBuf>>
- Changed storage type of include search paths from
-
0.16.002 May 2017 -
0.15.228 Apr 2017 -
0.15.129 Mar 2017 -
0.15.014 Mar 2017Release notes
Open source →Added
- Added support for
clang4.0.x
Changed
- Changed functions in the
Functionsstruct to beunsafe(runtimefeature only) - Changed
Clang::findmethod to ignore directories and non-executable files - Changed
Clang::findto skip dynamic libraries for an incorrect architecture on FreeBSD and Linux - Bumped
bitflagsversion to0.7.0
- Added support for
-
0.14.128 Apr 2017Nothing published for this version
-
0.14.030 Jan 2017Release notes
Open source →Changed
- Changed all enum types from tuple structs to raw integers to avoid segmentation faults on some platforms
-
0.13.030 Jan 2017Release notes
Open source →Changed
- Changed all opaque pointers types from tuple structs to raw pointers to avoid segmentation faults on some platforms
-
0.12.014 Dec 2016Release notes
Open source →Changed
- Altered the runtime linking API to allow for testing the presence of functions
-
0.11.107 Dec 2016Release notes
Open source →Added
- Added support for linking to Clang on Windows from unofficial LLVM sources such as MSYS and MinGW