{"id":13654201,"url":"https://github.com/eBay/go-ovn","last_synced_at":"2025-04-23T07:30:40.924Z","repository":{"id":47156512,"uuid":"117289081","full_name":"eBay/go-ovn","owner":"eBay","description":"A Go library for OVN Northbound/Southbound DB access using native OVSDB protocol","archived":false,"fork":false,"pushed_at":"2021-09-10T19:45:08.000Z","size":581,"stargazers_count":108,"open_issues_count":16,"forks_count":59,"subscribers_count":20,"default_branch":"master","last_synced_at":"2024-11-10T04:36:49.289Z","etag":null,"topics":["ovn","ovsdb"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eBay.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-01-12T21:21:13.000Z","updated_at":"2024-09-05T08:14:06.000Z","dependencies_parsed_at":"2022-07-24T23:46:30.250Z","dependency_job_id":null,"html_url":"https://github.com/eBay/go-ovn","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eBay%2Fgo-ovn","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eBay%2Fgo-ovn/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eBay%2Fgo-ovn/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eBay%2Fgo-ovn/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eBay","download_url":"https://codeload.github.com/eBay/go-ovn/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250390904,"owners_count":21422802,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ovn","ovsdb"],"created_at":"2024-08-02T02:01:24.803Z","updated_at":"2025-04-23T07:30:40.551Z","avatar_url":"https://github.com/eBay.png","language":"Go","funding_links":[],"categories":["Language bindings"],"sub_categories":[],"readme":"GO OVN [![License](https://img.shields.io/:license-apache-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![GoDoc](https://godoc.org/github.com/ebay/go-ovn?status.svg)](https://godoc.org/github.com/ebay/go-ovn) [![Travis CI](https://api.travis-ci.org/ebay/go-ovn.svg?branch=master)](https://travis-ci.org/ebay/go-ovn) [![Go Report Card](https://goreportcard.com/badge/ebay/go-ovn)](https://goreportcard.com/report/github.com/ebay/go-ovn)\n========\n\nA Go library for OVN DB access using native OVSDB protocol.\nIt is based on the [OVSDB Library](https://github.com/socketplane/libovsdb.git), but used own fork\nhttps://github.com/ebay/libovsdb.git with patches.\n\n## What is OVN?\n\nOVN (Open Virtual Network) is a SDN solution built on top of OVS (Open vSwitch).\nThe interface of OVN is its northbound DB which is an OVSDB database.\n\n## What is OVSDB?\n\nOVSDB is a protocol for managing the configuration of OVS.\nIt's defined in [RFC 7047](http://tools.ietf.org/html/rfc7047).\n\n## Why native OVSDB protocol?\n\nThere are projects accessing OVN DB based on the ovn-nbctl/sbctl CLI, which has some\nproblems. Here are the majors ones and how native OVSDB protocol based approach\nsolves them:\n\n- Performance problem. Every CLI command would trigger a separate OVSDB connection setup/teardown,\n  initial OVSDB client cache population, etc., which would impact performance significantly. This\n  library uses OVSDB protocol directly so that the overhead happens only once for all OVSDB operations.\n\n- Caching problem. When there is a change in desired state, which requires updates in OVN, we need\n  to figure out first what's the current state in OVN, which requires either maintaining a client\n  cache or executing a \"list\" command everytime. This library maintains an internal cache and ensures\n  it is always up to date with the remote DB with the help of native OVSDB support.\n\n- String parsing problem. CLI based implementation needs extra conversion from the string output\n  to Go internal data types, while it is not necessary with this library since OVSDB JSON RPC takes\n  care of it.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FeBay%2Fgo-ovn","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FeBay%2Fgo-ovn","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FeBay%2Fgo-ovn/lists"}