https://github.com/indoorvivants/sn-bindgen
Scala 3 native binding generator + libclang facade
https://github.com/indoorvivants/sn-bindgen
bindings c generator sbt scala scala-native
Last synced: 5 months ago
JSON representation
Scala 3 native binding generator + libclang facade
- Host: GitHub
- URL: https://github.com/indoorvivants/sn-bindgen
- Owner: indoorvivants
- Created: 2021-12-26T14:09:46.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2025-04-04T16:05:12.000Z (6 months ago)
- Last Synced: 2025-04-30T21:07:40.067Z (5 months ago)
- Topics: bindings, c, generator, sbt, scala, scala-native
- Language: Scala
- Homepage: https://sn-bindgen.indoorvivants.com
- Size: 2.68 MB
- Stars: 84
- Watchers: 1
- Forks: 9
- Open Issues: 58
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Bindings generator for Scala 3 Native
[](https://index.scala-lang.org/indoorvivants/sn-bindgen/bindgen-interface)
Distributed as a SBT plugin and a CLI program, this project generates idiomatic
Scala 3 Native bindings to C libraries using libclang.- [Documentation](https://sn-bindgen.indoorvivants.com/index.html)
- [Template](https://github.com/keynmol/sn-bindgen-template)
- [Sample bindings and usage examples](https://github.com/keynmol/sn-bindgen-examples) - Postgres, Sqlite, Tree Sitter, cJSON, Git, Lua, Redis, RocksDB, DuckDB, libuv, Cmark, s2, OpenSSL, etc.**Status (February 2024)**: project it actively maintained, and is used in several applications
- Generates glue C code to work around Scala Native's missing interop features
- Strongly typed (where possible) interfaces to structs, unions, and functions
- Supports named enums
- Collects unnamed enums into a single location
- Extra flags to work around compiler deficiencies