go-nft
Go bindings for nft utility.
go-nft wraps invocation of the nft utility with functions to append and delete
rules; create, clear and delete tables and chains.
To start using go-nft
go-nft is a library that provides a structured API to nftables.
go-nft uses the libnftables-json specification
and exposes a subset of its structures.
config := nft.NewConfig()
config.AddTable(nft.NewTable("mytable", nft.FamilyIP))
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()
err := nft.ApplyConfigContext(ctx, config)
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()
config, err := nft.ReadConfigContext(ctx)
nftVersion := config.Nftables[0].Metainfo.Version
For full setup example, see the integration test examples.
Contribution
We welcome contribution of any kind!
Read CONTRIBUTING to learn how to contribute to the project.
Changelog
Please refer to CHANGELOG