Liking cljdoc? Tell your friends :D

Change Log

1.2.0 (2026-06-21)

New:

  • loom.alg/simple-paths - all simple paths between two nodes, with an optional :max-depth. Closes #111.
  • loom.alg/digraph-all-cycles - all simple cycles in a directed graph (Johnson's algorithm). Closes #126.

Performance:

  • degeneracy-ordering decrements neighbor degrees directly instead of building an intermediate map. Closes #108.
  • pre-traverse pushes successors lazily, avoiding O(E) stack growth on dense graphs (preorder unchanged). Closes #120.

1.1.0 (2026-06-21)

First release of the maintained fork, published as net.clojars.savya/loom.

Platform:

  • Default to Clojure 1.12; test matrix on Clojure 1.10/1.11/1.12 and JDK 8/11/17/21.
  • Bump data.priority-map to 1.2.1, test.check to 1.1.3, ClojureScript to 1.12.145.
  • Add deps.edn so loom is usable as a git dependency and via clojure -X:test.
  • GitHub Actions CI (clj matrix + a ClojureScript/node job).

Bug fixes:

  • transpose returned an empty graph under ClojureScript, breaking scc, strongly-connected?, and every transpose-based operation. Fixes #131.
  • remove-nodes / subgraph threw a null error on digraphs under ClojureScript. Fixes #134.
  • bf-path-bi ran its two searches in racing threads and could return a non-shortest path; it is now deterministic.
  • bipartite-color ignored edge direction on digraphs, giving non-deterministic results for nodes with no outgoing edges. Fixes #118.
  • maximal-cliques on a digraph now throws instead of returning silently-wrong results. Fixes #128.
  • remove-nodes now prunes the removed nodes' attributes. Fixes #93.
  • weight on an edge dispatches to (weight* g e), honoring the protocol for graphs whose edges are not determined by their endpoints. Fixes #141.
  • Building a graph from an empty adjacency map ((graph {})) no longer throws. Fixes #137.

1.0.1 (2018-02-19)

Full Changelog

Closed issues:

  • Make 1.0.1 release ? #103
  • loom.io/view calls render-to-bytes incorrectly #95
  • :fmt option in render-to-bytes? #56

Merged pull requests:

1.0.0 (2017-02-16)

Full Changelog

Closed issues:

  • Support for weighted nodes #92
  • default-flygraph-digraph-impl has error, nil protocol method impl #90
  • Graph Attribute #89
  • load graph from disk #88
  • A* implementation is incorrect. #82
  • clojurescript support #45

Merged pull requests:

0.6.0 (2016-04-14)

Full Changelog

Closed issues:

  • Specify color and shape of the nodes #80
  • when nodes are records, loom.io/view renders incorrectly #75
  • Move dataflow framework from ssa branch into loom.dataflow #65
  • Move to Clojure 1.7 and convert to cljc #60
  • Combining graphs fails to preserve attribute data #55
  • partial application doesn't belong in the loom.graph protocols #43

Merged pull requests:

0.5.4 (2015-07-11)

Full Changelog

Closed issues:

  • obsolete API docs #68
  • ClojureScript? #67
  • gen-rand throws exception for weighted graphs unless min-weight and max-weight are explicitly provided #51
  • Several functions have misplaced doc strings #46
  • var defined a second time... #36
  • something's wrong... #35
  • core.matrix support? #28

Merged pull requests:

  • Make tense on docstrings consistent #63 (danielcompton)
  • Clean up ns and make code more idiomatic #62 (danielcompton)
  • Fix for #55 #59 (AshtonKem)
  • fix typo in bellman-ford docstring #58 (aw7)
  • Add has-node? to flygraph default implementation. #57 (monora)
  • Ensure that max-weight is greater than min-weight when generating random weighted-graphs #53 (tihancock)
  • Fix comment "nodes" -> "edges" #52 (semperos)
  • Greedy coloring for graphs/digraphs #50 (danshapero)
  • Allow for more global attributes in graphviz #48 (zmaril)
  • Patch aysylu/loom/46 #47 (arrdem)
  • Maximal cliques and all-pairs shortest path algorithms #40 (mattrepl)
  • Pre traverse fix #38 (gshopov)
  • Corrected misplaced docstrings and type hints (found by eastwood). #37 (fmjrey)
  • now at version to 0.5.0 #33 (fmjrey)
  • dot-str: edge label, when available, takes precedence over weight. #32 (fmjrey)
  • Edge traverse #31 (fmjrey)

0.5.0 (2014-06-09)

Full Changelog

Closed issues:

  • Write FAQ #12
  • Link to autodocs #11
  • \(scc ...\) dies with a StackOverflow on large directed graphs #5
  • Add documentation on loom.attr functions #4

0.4.2 (2014-01-04)

Full Changelog

Closed issues:

  • attrs gives inconsistent results when no attributes exist #9

0.4.1 (2013-10-27)

Closed issues:

  • (scc ...) doesn't compute the correct components in some cases #6
  • add slides and video from LispNYC to README page #3
  • Should use attr instead of label in visualization #2

* This Change Log was automatically generated by github_changelog_generator

Can you improve this documentation? These fine people already did:
Aysylu & Savyasachi
Edit on GitHub

cljdoc builds & hosts documentation for Clojure/Script libraries

Keyboard shortcuts
Ctrl+kJump to recent docs
Move to previous article
Move to next article
Ctrl+/Jump to the search field
× close