Liking cljdoc? Tell your friends :D

Change Log

[1.3.2] - 2026-08-17

Fixed

  • add-attrs-to-all no longer invents bogus attributes: it treated the flat key/value list as a sliding window (partition 2 1), writing a spurious entry keyed by each value. It now pairs keys with values (partition 2).

[1.3.1] - 2026-07-12

Changed

  • Migrate the build to deps.edn and tools.build, with Leiningen supported via lein-tools-deps.

[1.3.0] - 2026-06-21

New:

  • loom.gen/gen-circle and loom.gen/gen-newman-watts - ring and small-world (Newman & Watts 1999) graph generators, seeded for reproducibility. Closes #106.
  • loom.gen/gen-barabasi-albert - scale-free graph generator via preferential attachment (Barabasi & Albert 1999), seeded. Reworks #105 (whose attachment probability was inverted).
  • loom.alg/clustering-coefficient - local and average clustering coefficient (Watts & Strogatz 1998).

[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:
Savyasachi & Aysylu
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