Added Licensing.

This added the new License and stamped all the files with it.
This commit is contained in:
2025-07-29 12:59:33 -04:00
parent 0b2f82c440
commit 96b58aed43
12 changed files with 269 additions and 5 deletions

View File

@ -1,5 +1,65 @@
# Binding #
There are many common data types and functions used when interfacing
with C libraries. The Binding library attempts to define the more commonly
needed types and functions to help speed up the process of wrapping
these libraries.
# Binding
`binding` is a foundational Rust crate providing safe and ergonomic
abstractions for Foreign Function Interface (FFI) bindings. It serves as the
core layer for building robust, cross-platform Rust bindings to native C APIs,
enabling seamless integration between Rust and C codebases.
---
## Features
- Safe abstractions over unsafe FFI calls
- Ergonomic trait-driven interfaces for common binding patterns
- Cross-platform support for Windows and Linux
- Designed with zero-cost abstractions in mind, maintaining performance
- Facilitates building high-quality Rust wrappers around C libraries
---
## Add to Your Project
This library is hosted on the CyberMages registry. To add it to your project,
the CyberMages registry must be added to your Cargo configuration as described
in the [Cargo Book](https://doc.rust-lang.org/cargo/reference/registries.html).
First, add the registry to your Cargo config (`.cargo/config.toml` or
`$CARGO_HOME/config.toml`):
```toml
[registries.cybermages]
index = "sparse+https://workshop.cybermages.tech/api/packages/CyberMages/cargo/"
```
Then add `binding` as a dependency in your `Cargo.toml`:
```toml
[dependencies]
binding = { version = "0.x", registry = "cybermages" }
```
---
## Getting Started
## Motivation
Working with native C libraries from Rust often requires careful handling of
unsafe code and complex boilerplate. The `binding` crate aims to reduce this
friction by providing reusable, well-tested abstractions that improve safety,
readability, and maintainability of Rust FFI code.
---
## Copyright & License
Copyright 2017 CyberMages LLC
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this library except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS