{"id":66248,"library":"natessilva-dag","title":"DAG","description":"Package dag implements a directed acyclic graph task runner with deterministic teardown, similar to errgroup.","status":"active","version":"0.0.0-20180124060714-7194b8dcc5c4","language":"go","source_language":null,"source_url":"https://github.com/natessilva/dag","tags":["dag","task-runner","parallel","graph"],"install":[{"cmd":"go get github.com/natessilva/dag","lang":"bash","label":"Install github.com/natessilva/dag"}],"dependencies":[],"imports":[{"symbol":"dag","correct":"github.com/natessilva/dag"}],"quickstart":{"code":"package main\n\nimport (\n\t\"fmt\"\n\t\"github.com/natessilva/dag\"\n)\n\nfunc main() {\n\trunner := dag.NewRunner()\n\trunner.AddVertex(\"task1\", func() error {\n\t\tfmt.Println(\"task1\")\n\t\treturn nil\n\t})\n\trunner.AddEdge(\"task2\", \"task1\", func() error {\n\t\tfmt.Println(\"task2\")\n\t\treturn nil\n\t})\n\terr := runner.Run()\n\tfmt.Println(err)\n}","lang":"go","description":"Creates a DAG runner with two tasks where task2 depends on task1."},"warnings":[],"env_vars":null,"search_vec":"'acycl':7 'dag':1,3,17 'determinist':12 'direct':6 'errgroup':16 'graph':8,22 'implement':4 'packag':2 'parallel':21 'runner':10,20 'similar':14 'task':9,19 'task-runn':18 'teardown':13","created_at":"2026-06-17T17:21:08.984000+00:00","updated_at":"2026-06-17T17:21:08.984000+00:00","problems":[],"ecosystem":"go","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://github.com/natessilva/dag","github":"https://github.com/natessilva/dag","docs":"https://pkg.go.dev/github.com/natessilva/dag#section-documentation","changelog":null,"pypi":null,"npm":null,"openapi_spec":null,"status_page":null,"smithery":null,"categories":["utility"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-17","next_check":"2026-12-14","install_tag":null}}