{"repo":"metal-stack/go-ipam","free":true,"listed":false,"github":"https://github.com/metal-stack/go-ipam","clone":"git clone https://github.com/metal-stack/go-ipam.git","description":"golang grpc service and library for ip address management","language":"Go","stars":155,"topics":["golang","ipam","ipaddress","networking","grpc","protobuf"],"license":"MIT","category":"networking-infra","readme_excerpt":"go-ipam go-ipam is a module to handle IP address management. It can operate on networks, prefixes and IPs. It also comes as a ready to go microservice which offers a grpc api. IP Most obvious this library is all about IP management. The main purpose is to acquire and release an IP, or a bunch of IP's from prefixes. Prefix A prefix is a network with IP and mask, typically in the form of 192.168.0.0/24 . To be able to manage IPs you have to create a prefix first. Library Example usage: GRPC Service First start the go-ipam container with the database backend of your choice already up and running. For example if you have a postgres database for storing the ipam data, you could run the grpc service like so: From a client perspective you can now talk to this service via grpc. GRPC Example usage: GRPC client There is also a cli provided in the container which can be used to make calls to the grpc endpoint manually: Metrics pprof Docker Compose example Ensure you have docker with compose support installed. Then execute the following command: Supported Databases & Performance Database Acquire Child Prefix Acquire IP New Prefix Prefix Overlap Production-Ready Geo-Redundant :------------ ---------------------: ------------: ------------: ---------------: :----------------- :-------------- In-Memory 106,861/sec 196,687/sec 330,578/sec 248/sec N N File N N KeyDB 777/sec 975/sec 2,271/sec Y Y Redis 773/sec 958/sec 2,349/sec Y N MongoDB 415/sec 682/sec 772/sec Y Y Etcd 258/sec 368/sec 533/s","default_branch":null,"files":null,"tree":[],"storefront":"/r/metal-stack","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/metal-stack/go-ipam/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}