# hinoko crate

Rust API bindings and wrappers for
[hinoko library](https://git.kernel.org/pub/scm/libs/ieee1394/libhinoko.git/) to operate 1394 OHCI
hardware via Linux FireWire character device for isochronous communication in IEEE 1394 bus.

The hinoko library version 1.0 is the minimum supported version for underlying library.

The hinoko crate is automatically generated by [gir tool](https://gtk-rs.org/gir/book/) provided
by [gtk-rs project](https://gtk-rs.org/). Hinoko-1.0 file from hinoko library is used for the
generation. But some functions are implemented manually.

## Usage

Add the following line to your Cargo.toml file:

```toml
[dependencies]
hinoko = "0.7"
```

The API documentation is available in <https://docs.rs/hinoko/>.

## License

The hinoko crate is released under [MIT license](https://spdx.org/licenses/MIT.html).

## Dependency

The hinoko crate depends on API crates provided by [gtk-rs project](https://gtk-rs.org/) for
type/object system, event loop, and dispacher.

## Repository

The hinoko crate is maintained by Takashi Sakamoto for upstream of Linux FireWire subsystem.
The remote repository locates in <https://git.kernel.org/pub/scm/libs/ieee1394/hinoko-rs.git/>.

## Support

If finding issue, please file it in <https://github.com/takaswie/hinoko-rs/> which is the mirror of
upstream for user support and continuous integration.

## Sample programs
Some programs are available under `examples` directory.

* `fw-iso-resource`
    * demonstration to allocate and deallocate isochronous resources

* `fw-iso-resource-async`
    * demonstration of the above example with async runtime

* `fw-iso-rx-single`
    * demonstration to receive isochronous packets at single channel

* `fw-iso-rx-multiple`
    * demonstration to receive isochronous packets at multiple channels

* `fw-iso-tx`
    * demonstration to transmit isochronous packets at single channel
