From 9cc11f080b892b6c98a1bec7e8748d1bbe2e9c84 Mon Sep 17 00:00:00 2001 From: wiegratz Date: Tue, 6 Feb 2024 12:06:21 +0100 Subject: [PATCH] docs: describe features in readme, add namib project logo --- README.md | 59 +++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 44 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 3779d32..a60d3b2 100644 --- a/README.md +++ b/README.md @@ -1,26 +1,54 @@ -# nftables-rs   [![Latest Version]][crates.io] [![docs.io Badge]][docs.io] [![Actions Badge]][Actions] [![license Badge]][license] +

+

+ + Logo + +
nftables-rs +

-[Latest Version]: https://img.shields.io/crates/v/nftables.svg -[crates.io]: https://crates.io/crates/nftables -[docs.io Badge]: https://img.shields.io/badge/docs.rs-nftables-green.svg -[docs.io]: https://docs.rs/nftables/latest/nftables/ -[Actions Badge]: https://github.com/namib-project/nftables-rs/actions/workflows/rust.yml/badge.svg -[Actions]: https://github.com/namib-project/nftables-rs/actions/workflows/rust.yml -[license Badge]: https://img.shields.io/crates/l/nftables.svg -[license]: LICENSE-MIT +

Automate modern Linux firewalls with nftables through its declarative and imperative JSON API in Rust.

-Safe abstraction for nftables JSON API ([libnftables-json](https://manpages.debian.org/testing/libnftables1/libnftables-json.5.en.html)). -It can be used to create nftables rulesets in Rust and parse existing nftables rulesets from JSON. -This library can also interact with local nftables system with helper functions for reading and applying rulesets. + +

+ + + + Crates.io Total Downloads + + rs + + Actions Workflow Status + + License +

+
-nftables-rs is inspired by [nftnl-rs](https://github.com/mullvad/nftnl-rs), which directly accesses the nf_tables kernel subsystem to work with nftables. -The goal of this library is to provide access to the complete expressiveness of the nftables schema. +## Features 🌟 + +- 🛡️ **Safe and Easy-to-Use Abstraction**: Provides a high-level, safe abstraction over the [nftables JSON API](https://manpages.debian.org/testing/libnftables1/libnftables-json.5.en.html), making it easier and safer to work with nftables in Rust. + +- 🛠️ **Comprehensive Functions**: Includes a wide range of functions to create, read, and apply nftables rulesets directly from Rust, streamlining the management of firewall rules. + +- 📄 **JSON Parsing and Generation**: Offers detailed parsing and generation capabilities for nftables rulesets in JSON format, enabling seamless integration and manipulation of rulesets. + +- 💡 **Inspired by nftnl-rs**: While taking inspiration from [nftnl-rs](https://github.com/mullvad/nftnl-rs), `nftables-rs` focuses on utilizing the JSON API for broader accessibility and catering to diverse use cases. + +## Motivation + +`nftables-rs` is a Rust library designed to provide a safe and easy-to-use abstraction over the nftables JSON API, known as libnftables-json. + +This library is engineered for developers who need to interact with nftables, the Linux kernel's next-generation firewalling tool, directly from Rust applications. +By abstracting the underlying JSON API, nftables-rs facilitates the creation, manipulation, and application of firewall rulesets without requiring deep knowledge of nftables' internal workings. + +## Installation ```toml [dependencies] -nftables = "0.2.0" +nftables = "0.3.0" ``` +Linux nftables v0.9.3 or newer is required at runtime: `nft --version` + ## Example Here are some examples that show use cases of this library. @@ -113,3 +141,4 @@ This project is currently maintained by the following developers: | Name | Email Address | GitHub Username | |:----------------:|:----------------------:|:--------------------------------------------:| | Jasper Wiegratz | wiegratz@uni-bremen.de | [@jwhb](https://github.com/jwhb) | +