16 releases

0.1.16 Jul 5, 2021
0.1.15 Jul 2, 2021
0.1.12 Jun 11, 2021
0.1.8 May 28, 2021
0.1.1 Dec 12, 2019

#532 in Development tools

Download history 18/week @ 2022-11-27 30/week @ 2022-12-04 41/week @ 2022-12-11 50/week @ 2022-12-18 24/week @ 2022-12-25 10/week @ 2023-01-01 27/week @ 2023-01-08 13/week @ 2023-01-15 41/week @ 2023-01-22 69/week @ 2023-01-29 32/week @ 2023-02-05 54/week @ 2023-02-12 60/week @ 2023-02-19 38/week @ 2023-02-26 37/week @ 2023-03-05 41/week @ 2023-03-12

193 downloads per month
Used in 9 crates (2 directly)

Apache-2.0

105KB
2.5K SLoC

Ligen

Ligen (Language Interface Generator) is an extensible macro-based multi-language binding generator.

We officially support ligen-c, a binding generator for the Programming Language C.

You can add ligen to your codebase by adding #[ligen] attributes to the items you want to export. It is as simple as this:

use ligen::ligen;
use ligen_c::ligen_c;
use ligen_cpp::ligen_cpp;

pub struct Counter {
  count: u32
}

#[ligen(c, cpp)]
impl Counter {
  pub fn new() -> Self { Self { count: 0 } }

  pub fn count(&mut self) { self.count += 1; }

  pub fn get_count(&self) -> u32 { self.count }
}

Getting started

Here are a few links to get started:

Dependencies

~1.5–2.3MB
~50K SLoC