{"id":48259130,"url":"https://github.com/outout14/libknot","last_synced_at":"2026-04-04T21:24:37.393Z","repository":{"id":47132815,"uuid":"405521699","full_name":"outout14/libknot","owner":"outout14","description":"Go interface for managing the Knot DNS daemon","archived":false,"fork":false,"pushed_at":"2021-10-09T00:06:59.000Z","size":50,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-06-21T02:18:52.992Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/outout14.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-09-12T01:46:42.000Z","updated_at":"2024-06-21T02:18:52.993Z","dependencies_parsed_at":"2022-08-20T13:10:25.537Z","dependency_job_id":null,"html_url":"https://github.com/outout14/libknot","commit_stats":null,"previous_names":["outout14/golibknot"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/outout14/libknot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/outout14%2Flibknot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/outout14%2Flibknot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/outout14%2Flibknot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/outout14%2Flibknot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/outout14","download_url":"https://codeload.github.com/outout14/libknot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/outout14%2Flibknot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31414913,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T20:09:54.854Z","status":"ssl_error","status_checked_at":"2026-04-04T20:09:44.350Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2026-04-04T21:24:37.158Z","updated_at":"2026-04-04T21:24:37.381Z","avatar_url":"https://github.com/outout14.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LibKnot : Go interface for managing the Knot DNS daemon\r\n\r\nLibKnot is a GoLang interface to manage the KnotDNS daemon using the C library ([libknot](https://github.com/CZ-NIC/knot/tree/master/tests/libknot)) based on the ([official Python interface](https://pypi.org/project/libknot/)].\r\n\r\n\r\nSince the software loads the C library dynamically, you must install it on your development and production machine. \r\nWhen publishing compiled software, pay attention to the version of libknot used.\r\n\r\n\r\n## Usage \r\n\r\nYou can uses this library in two ways : \r\n- Use wrapper functions, easier to use. \t\r\n- Directly control the server with the functions ``Alloc()``, ``Connect()``, ``Close()``, ``Free()``, ``Send()``, ``Receive()`` and manage data types. \r\n\r\n## Examples \r\n\r\n- Basic example using wrapper functions : \r\n\r\n```go\r\npackage main\r\n\r\nimport (\r\n\t\"fmt\"\r\n\t\r\n\t\"github.com/outout14/libknot\"\r\n)\r\n\r\nfunc main() {\r\n\tctl := libknot.KnotCtl{} //Define the connection\r\n\r\n\terr := ctl.Init(\"/var/run/knot/knot.sock\") // Allocate de control context + Connect(socket)\r\n\tctl.ErrCheck(err)                          //Panic if err != 0 and print the error as a human readble string\r\n\r\n\t/* Send */\r\n\tmsg := libknot.KnotCtlData{\r\n\t\tCommand: \"conf-read\",\r\n\t\tSection: \"zone\",\r\n\t\tItem:    \"domain\",\r\n\t}\r\n\t_ = ctl.SendBlock(msg) //Send DATA msg + BLOCK (BLOCK = End of message)\r\n\t/* End Send */\r\n\r\n\t/* Receive */\r\n\tdata, _ := ctl.ReceiveBlock() //Retrieves all DATA and EXTRA type messages\r\n\r\n\tfor _, s := range data {\r\n\t\tfmt.Println(s.Data) //Print received data\r\n\t}\r\n\t/* End Receive*/\r\n\r\n\tctl.Terminate() //Send(END) + Close() + Free() control ctx\r\n}\r\n```\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foutout14%2Flibknot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foutout14%2Flibknot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foutout14%2Flibknot/lists"}