A free, platform-independent library for accessing Near Field Communication (NFC) devices from userspace applications.
libnfc is a free, platform-independent library that enables userspace applications to communicate with Near Field Communication (NFC) devices. It provides a standardized interface for interacting with various NFC readers and tags, solving the problem of fragmented, vendor-specific NFC SDKs by offering a unified, open-source solution.
Developers and researchers working on NFC-enabled applications, embedded systems, or hardware projects that require low-level access to NFC devices across different platforms.
Developers choose libnfc because it is a mature, libre alternative to proprietary NFC SDKs, offering broad hardware compatibility, cross-platform support, and the flexibility to work with multiple drivers and configurations without vendor lock-in.
Platform independent Near Field Communication (NFC) library
Supports POSIX systems and Windows, allowing NFC development on Linux, macOS, and Windows, as highlighted in the README's platform independence.
Compatible with numerous NFC readers like PN532, ACR122, and Feitian devices via multiple drivers such as pn53x_usb and pcsc, per the README's device list.
Enables configuration through files, environment variables, and per-device settings, offering fine-grained control, as detailed in the Configuration and Environment Variables sections.
Provides configurable log levels (e.g., LIBNFC_LOG_LEVEL) and debugging tools to aid development, mentioned in the How to report bugs section.
Requires installation of third-party libraries like libusb and pcsc-lite, plus manual steps such as blacklisting kernel modules or tweaking PCSC configurations, making initial setup non-trivial.
The official website and forum are defunct, relying on archived copies via Wayback Machine, which hinders access to current documentation and community support.
As a low-level library, it lacks built-in tools for common NFC tasks like mobile app integration or tag emulation, forcing developers to implement functionality from scratch.
Capstone disassembly/disassembler framework for ARM, ARM64 (ARMv8), Alpha, BPF, Ethereum VM, HPPA, LoongArch, M68K, M680X, Mips, MOS65XX, PPC, RISC-V(rv32G/rv64G), SH, Sparc, SystemZ, TMS320C64X, TriCore, Webassembly, XCore and X86.
A cross-platform protocol library to communicate with iOS devices
CommonMark spec, with reference implementations in C and JavaScript
A portable foreign-function interface library.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.