crystal_lib

Version, currently master branch1 version
  • master branchlatestSep 18, 2025

github.com/crystal-lang/crystal_lib

Automatic binding generator for native libraries in Crystal

145 stars
1 dependent
License: not declared

Installation

# Add this to your shard.yml
dependencies:
  crystal_lib:
    github: crystal-lang/crystal_lib
    branch: master

master is a branch, not a release, so this tracks it rather than pinning a version.

Then run:

shards install

shard.yml

Crystal
>= 0.36.0, < 2.0.0

Dependencies

Runtime Dependencies

  • clang*github: crystal-lang/clang.cr, branch: master

README

# crystal_lib [![Build Status](https://travis-ci.org/crystal-lang/crystal_lib.svg?branch=master)](https://travis-ci.org/crystal-lang/crystal_lib)

Automatic binding generator for native libraries in Crystal.

NOTE: THIS PROJECT IS EXPERIMENTAL. WHILE IT'S PROVING USEFUL FOR A WIDE RANGE OF LIBRARIES, THERE ARE STILL SEVERAL CORNER CASES THAT WILL NOT TRANSLATE PROPERLY. 

This will eventually be integrated into the compiler itself so you don't have to manually
generate these bindings and copy &amp; paste them into your project. The advantage of this is
that some types and values vary depending on the platform, so generating these as late
as possible is the best thing to do.

## Status

For now you can use this as a tool to generate bindings from a `lib` declaration. Check
the examples directory.

### Usage

```
crystal src/main.cr -- examples/lib_git2.cr
```

This will write the generate lib definition to standard output.