/nfc-sys

:wrench:FFI bindings to libnfc

Primary LanguageRustMIT LicenseMIT

nfc-sys

Crates.io

nfc-sys provides FFI bindings to libnfc.

Following the *-sys package conventions, the nfc-sys package does not define higher-level abstractions over the native library; for a safe implementation, see nfc.

Installation

Install libnfc (e.g. Debian/Ubuntu, brew install libnfc using Homebrew on Mac OSx, or on other systems).

Cargo.toml

[dependencies]
libc = "0.2.0"
nfc-sys = "0.1.4"

Example Usage

// main.rs

extern crate nfc_sys;

use ::std::ffi::CStr;

fn main() {
    unsafe {
         // Create new Context and initialize libnfc
         let mut context = nfc_sys::nfc_context_new();
         nfc_sys::nfc_init(&mut context);
    
         if context.is_null() {
             println!("Unable to initialize new nfc context");
         }
    
         let version = CStr::from_ptr(nfc_sys::nfc_version()).to_str().unwrap();
    
         println!("libnfc version: {:?}", version);
    }
}

Contributing

I'm brand new to Rust so any help or constructive information would be really appreciated. Thanks in advance!

License

MIT