Popularity
8.1
Declining
Activity
5.9
-
49
12
9
Programming language: Crystal
License: GNU General Public License v3.0 or later
Tags:
C Bindings
Latest version: v0.3.0
clang.cr alternatives and similar shards
Based on the "C bindings" category.
Alternatively, view clang.cr alternatives based on common mentions on social networks and blogs.
CodeRabbit: AI Code Reviews for Developers
Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
Promo
coderabbit.ai

Do you think we are missing an alternative of clang.cr or a related project?
README
libclang bindings for Crystal
Usage:
require "clang"
index = Clang::Index.new
files = [
#Clang::UnsavedFile.new("input.c", "#include <pcre.h>\n"),
Clang::UnsavedFile.new("input.c", "#include <clang/Basic/ABI.h>\n"),
]
tu = Clang::TranslationUnit.from_source(index, files, [
"-I/usr/include",
"-I/usr/lib/llvm-5.0/include",
])
tu.cursor.visit_children do |cursor|
p cursor
Clang::ChildVisitResult::Continue
end
Samples
See the samples
folder for some example usages:
samples/debug.cr
will print the AST of C or C++ headers as they are parsed;samples/c2cr.cr
will automatically generate Crystal bindings for a C header.
For example:
$ shards build --release
$ bin/c2cr -I/usr/lib/llvm-5.0/include llvm-c/Core.h \
--remove-enum-prefix=LLVM --remove-enum-suffix > llvm-c/Core.cr
$ bin/c2cr -I/usr/lib/llvm-5.0/include clang-c/Index.h \
--remove-enum-prefix > clang-c/Index.cr
$ bin/c2cr gtk-2.0/gtk/gtkenums.h --remove-enum-prefix > gtk/enums.cr
Reference
License
Distributed under the Apache 2.0 license.
*Note that all licence references and agreements mentioned in the clang.cr README section above
are relevant to that project's source code only.