{"id":19730549,"url":"https://github.com/begriffs/endoxa-graph","last_synced_at":"2026-06-08T01:31:42.624Z","repository":{"id":9964832,"uuid":"11988224","full_name":"begriffs/endoxa-graph","owner":"begriffs","description":"everything's connected, man","archived":false,"fork":false,"pushed_at":"2013-10-11T18:19:37.000Z","size":362,"stargazers_count":2,"open_issues_count":1,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-11-23T01:03:03.473Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/begriffs.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":"2013-08-08T22:40:44.000Z","updated_at":"2015-05-30T09:48:48.000Z","dependencies_parsed_at":"2022-09-07T02:41:29.166Z","dependency_job_id":null,"html_url":"https://github.com/begriffs/endoxa-graph","commit_stats":null,"previous_names":["endoxajs/endoxa-graph"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/begriffs/endoxa-graph","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/begriffs%2Fendoxa-graph","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/begriffs%2Fendoxa-graph/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/begriffs%2Fendoxa-graph/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/begriffs%2Fendoxa-graph/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/begriffs","download_url":"https://codeload.github.com/begriffs/endoxa-graph/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/begriffs%2Fendoxa-graph/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34044919,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-07T02:00:07.652Z","response_time":124,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":"2024-11-12T00:16:45.100Z","updated_at":"2026-06-08T01:31:42.606Z","avatar_url":"https://github.com/begriffs.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## do things with graphs\n\n[![Build Status](https://travis-ci.org/endoxajs/endoxa-graph.png?branch=master)](https://travis-ci.org/endoxajs/endoxa-graph)\n\nOn the **server** side\n\n```sh\n# command line\nnpm install endoxa-graph\n```\n\n```js\n// javascript code\nvar EndoxaGraph = require('endoxa-graph');\n// have fun\n```\n\nOn the **client** side\n\n```sh\n# command line\nbower install endoxa-graph\n```\n\n```js\n// javascript code\nrequire(['endoxa-graph'], function(EndoxaGraph) {\n  // have fun\n});\n```\n\n### do things in the right order\n\nWhen you get dressed you have to do some things before others.\n\n![Getting Dressed](illustration/getting-dressed.png \"Getting Dressed\")\n\nOK, so what order should you do it? Ask endoxa:\n\n```js\nEndoxaGraph.toposort(\n  EndoxaGraph.fromConnectionsList([\n    [0, 6],\n    [1, 6],\n    [2, 0], [2, 1],\n    [3, 0], [3, 7],\n    [4, 3], [4, 7],\n    [5, 7]\n  ])\n);\n// -\u003e [5, 4, 3, 7, 2, 1, 0, 6]\n```\n![Dressing Order](illustration/dressing-order.png \"Dressing Order\")\n\n## Contributing\n\nThe first thing you will want to do is fork and clone this repo, and set\nthe project up so you can run the tests.\n\n```sh\n# command line (use \"sudo\" if necessary)\nnpm install\n\n# install grunt (use \"sudo\" if necessary)\nnpm install -g grunt-cli\n```\n\nNow you should be able to run the tests. Just do this\n\n```sh\ngrunt test\n```\n\nIf you just cloned the project then you should see all the tests pass.\nNow you're ready to contribute. Note that the code you write needs to\nconform to the JSHint conventions. To check your code, run\n\n```sh\ngrunt jshint\n```\n\nIt will tell you how to fix any errors. We enforce this style so that\nthe code stays consistent and easy to read.\n\n### Ways you can help\n\n* **Adding more tests for existing algorithms.** Tests live in the `test/`\ndirectory. Look at the code inside to get an idea how to write new\nones.\n* **Write tests for algorithms that haven't been implemented yet.**\nYou'll want to copy one of the files like `test/dfs.js` and give it\na name to match your algorithm. For instance, breadth-first search\nmight go in `test/bfs.js`. Because your test will fail (the algorithm\nhas not been implemented yet) you should send a pull request to the\n`unimplemented_tests` branch, not the `master` branch. We want to keep\n`master` always passing.\n* **Write algorithms to implement tests.** Create a branch off master,\ncherry-pick a commit from `unimplemented_tests` which adds the test you\nwant to implement, and write your code. When everything passes, send\na pull request to master.\n* **Refactor an existing algorithm to use more beautiful and functional\ncode.** This is the whole point of Endoxa, this is where the magic\nhappens. Make sure the tests still pass after your strokes of genius.\n\n## About EndoxaJS\n\nEndoxa means *established wisdom*. This collection of modules form an\nelegant base for JavaScript functional programming on both the client\nand server. The idea is that abstractions need to prove themselves in\nsubstantial code, and this library works backwards from interesting\nalgorithms to the abstract nonsense that makes it beautiful.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"illustration/endoxa-js.png\" alt=\"EndoxaJS Logo\" /\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbegriffs%2Fendoxa-graph","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbegriffs%2Fendoxa-graph","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbegriffs%2Fendoxa-graph/lists"}