# R701 | Oxibadge [![Rust](https://img.shields.io/badge/Rust-f74c00?logo=rust)](https://www.rust-lang.org) [![Claude Code](https://img.shields.io/badge/Claude%20Code-grey?logo=claude&logoColor=d97757)](https://claude.com/product/claude-code) [![GNU AGPLv3.0 License](https://img.shields.io/badge/License-GNU%20AGPLv3.0-dark_green?logo=gnu)](https://choosealicense.com/licenses/agpl-3.0) [![Buymeacoffee](https://img.shields.io/badge/Buymeacoffee-gray?logo=buymeacoffee)](https://buymeacoffee.com/nicolabelluti)
[![CI Badge](https://git.nicolabelluti.me/nicolabelluti/r701/actions/workflows/check-format-and-test.yaml/badge.svg)](https://git.nicolabelluti.me/nicolabelluti/r701/actions/?workflow=check-format-and-test.yaml)

> A reverse-engineered client for the > [R701](https://ipsattendant.it/rilevatore-presenze-r701/) attendance reader by > [I.P.S. Informatica](https://ipsinformatica.info/) This repository is a Cargo workspace with two members: - **[`r701/`](r701/README.md)** — the async Rust library that speaks the device's TCP protocol. - **[`oxibadge/`](oxibadge/README.md)** — Oxibadge, a minimal Tauri + Svelte desktop client built on top of the library. If you want to read about the reverse engineering attempt behind the library, check out .