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.
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.
- Apply the configuration:
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)
- Read the configuration:
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.
We welcome contribution of any kind! Read CONTRIBUTING to learn how to contribute to the project.
Please refer to CHANGELOG