{"id":41093532,"url":"https://github.com/sayden/groph","last_synced_at":"2026-01-22T14:53:49.838Z","repository":{"id":57526394,"uuid":"78372387","full_name":"sayden/groph","owner":"sayden","description":"A WIP graph database written in Go","archived":false,"fork":false,"pushed_at":"2017-03-13T17:40:34.000Z","size":164,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-06-20T15:54:12.994Z","etag":null,"topics":["database","edge","graph","vertex"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sayden.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":"2017-01-08T21:44:03.000Z","updated_at":"2024-06-20T15:54:12.995Z","dependencies_parsed_at":"2022-09-07T02:50:50.676Z","dependency_job_id":null,"html_url":"https://github.com/sayden/groph","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sayden/groph","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sayden%2Fgroph","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sayden%2Fgroph/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sayden%2Fgroph/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sayden%2Fgroph/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sayden","download_url":"https://codeload.github.com/sayden/groph/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sayden%2Fgroph/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28664745,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-22T14:01:31.714Z","status":"ssl_error","status_checked_at":"2026-01-22T13:59:23.143Z","response_time":144,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":["database","edge","graph","vertex"],"created_at":"2026-01-22T14:53:48.862Z","updated_at":"2026-01-22T14:53:49.832Z","avatar_url":"https://github.com/sayden.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# groph\nA WIP simple database library written in Go\n\nThis is more like a research project around an idea I had of making queries on a simple using callbacks than a serious simple database ready for production use.\n\nYou can load data in the graph by usin JSON or YAML data in \"triples\" format or a more advanced \"extended\" format:\n\n## Downloading and installing\n\n```bash\ngo get -u github.com/sayden/groph\n```\n\n## Quickstart\nTODO\n\n## Simple format\n\nAn example YAML simple format file:\n\n```yaml\n- vertex: start\n  edge: goes to\n  d_vertex: B\n\n- vertex: A\n  edge: goes to\n  d_vertex: finish\n\n- vertex: A\n  edge: goes to\n  d_vertex: B\n\n- vertex: B\n  edge: goes to\n  d_vertex: finish\n\n- vertex: B\n  edge: goes to\n  d_vertex: A\n\n- vertex: finish\n  edge: goes to\n  d_vertex: start\n```\n\nAs you can see you just have to declare the source vertex, the destination vertex and an ID for the edge that connects them.\n\nThe JSON equivalent file would be like this:\n\n```json\n[\n  { \"vertex\": \"start\", \"edge\": \"goes to\", \"d_vertex\": \"B\" },\n  { \"vertex\": \"A\", \"edge\": \"goes to\", \"d_vertex\": \"finish\" },\n  { \"vertex\": \"A\", \"edge\": \"goes to\", \"d_vertex\": \"B\" },\n  { \"vertex\": \"B\", \"edge\": \"goes to\", \"d_vertex\": \"finish\" },\n  { \"vertex\": \"B\", \"edge\": \"goes to\", \"d_vertex\": \"A\" },\n  { \"vertex\": \"finish\", \"edge\": \"goes to\", \"d_vertex\": \"start\" }\n]\n````\n\n## Extended format\n\nIn the case of the extended format:\n\n```yaml\n- vertex:\n    id: start\n    data:\n      description: starting point\n  edge:\n    id: goes to\n    data:\n      description: data in some edge\n    weight: 52.3\n  d_vertex:\n    id: A\n\n- vertex:\n    id: A\n  edge:\n    id: goes to\n    weight: 52.3\n  d_vertex:\n    id: finish\n\n- vertex:\n    id: A\n  edge:\n    id: goes to\n  d_vertex:\n    id: B\n\n- vertex:\n    id: B\n  edge:\n    id: goes to\n  d_vertex:\n    id: A\n\n- vertex:\n    id: B\n  edge:\n    id: goes to\n    weight: 52.3\n  d_vertex:\n    id: finish\n\n```\n\nIn the extended format each vertex and edge can contain a \"data\" key with any value that you can consider inside. In this case the ID field is mandatory on each node of the YAML / JSON.\n\n\nAnd the JSON equivalent:\n\n```json\n[\n  {\n    \"vertex\":  { \"id\": \"start\",   \"data\":{ \"description\":\"starting point\"    }                },\n    \"edge\":    { \"id\": \"goes to\", \"data\":{ \"description\":\"data in some edge\" }, \"weight\":52.3 },\n    \"d_vertex\":{ \"id\": \"A\"                                                                    }\n  },\n  {\n    \"vertex\":  { \"id\": \"A\" },\n    \"edge\":    { \"id\": \"goes to\", \"weight\":52.3 },\n    \"d_vertex\":{ \"id\": \"finish\"}\n  },\n  {\n    \"vertex\":  { \"id\": \"A\" },\n    \"edge\":    { \"id\": \"goes to\" },\n    \"d_vertex\":{ \"id\": \"B\"}\n  },\n  {\n    \"vertex\":  { \"id\": \"B\" },\n    \"edge\":    { \"id\": \"goes to\" },\n    \"d_vertex\":{ \"id\": \"A\"}\n  },\n  {\n    \"vertex\":  { \"id\": \"B\" },\n    \"edge\":    { \"id\": \"goes to\", \"weight\":52.3 },\n    \"d_vertex\":{ \"id\": \"finish\"}\n  }\n]\n````\n\nIf you want a rock-solid simple database written in Go check [Cayley](https://github.com/cayleygraph/cayley)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsayden%2Fgroph","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsayden%2Fgroph","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsayden%2Fgroph/lists"}