Rust bindings for libdivecomputer, a cross-platform and open source library for communication with dive computers from various manufacturers.
This repository contains 2 crates:
Name | Description | Links |
---|---|---|
libdivecomputer |
High-level interface on top of libdivecomputer-sys 🚧 |
|
libdivecomputer-sys |
Unsafe bindings for libdivecomputer |
-
The high-level
libdivecomputer
wrapper is work-in-progress, and only covers a part of libdivecomputer functionality. -
Any other features have to be accessed through the unsafe libdivecomputer-sys crate.
-
Only supports Linux and Android at the moment.
The following code example shows how libdivecomputer
can be initialized.
let dive_computer = DiveComputer::new();
for vendor in dive_computer.vendors().unwrap() {
println!("{}", vendor.name);
for product in vendor.products() {
println!("\t{}", product.name)
}
}
Information about all wrapper functionality can be found in the libdivecomputer crate docs.
- autoreconf
- gcc
git submodule update --init
cargo build --release
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Note that libdivecomputer has its own LGPL-2.1 license.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.