graphs-cats


License

License

GroupId

GroupId

com.flowtick
ArtifactId

ArtifactId

graphs-cats_sjs0.6_2.13
Last Version

Last Version

0.3.0
Release Date

Release Date

Type

Type

jar
Description

Description

graphs-cats
graphs-cats
Project URL

Project URL

https://flowtick.github.io/graphs
Project Organization

Project Organization

com.flowtick
Source Code Management

Source Code Management

https://github.com/flowtick/graphs

Download graphs-cats_sjs0.6_2.13

How to add to project

<!-- https://jarcasting.com/artifacts/com.flowtick/graphs-cats_sjs0.6_2.13/ -->
<dependency>
    <groupId>com.flowtick</groupId>
    <artifactId>graphs-cats_sjs0.6_2.13</artifactId>
    <version>0.3.0</version>
</dependency>
// https://jarcasting.com/artifacts/com.flowtick/graphs-cats_sjs0.6_2.13/
implementation 'com.flowtick:graphs-cats_sjs0.6_2.13:0.3.0'
// https://jarcasting.com/artifacts/com.flowtick/graphs-cats_sjs0.6_2.13/
implementation ("com.flowtick:graphs-cats_sjs0.6_2.13:0.3.0")
'com.flowtick:graphs-cats_sjs0.6_2.13:jar:0.3.0'
<dependency org="com.flowtick" name="graphs-cats_sjs0.6_2.13" rev="0.3.0">
  <artifact name="graphs-cats_sjs0.6_2.13" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.flowtick', module='graphs-cats_sjs0.6_2.13', version='0.3.0')
)
libraryDependencies += "com.flowtick" % "graphs-cats_sjs0.6_2.13" % "0.3.0"
[com.flowtick/graphs-cats_sjs0.6_2.13 "0.3.0"]

Dependencies

compile (3)

Group / Artifact Type Version
org.scala-lang : scala-library jar 2.13.1
com.flowtick : graphs-core_sjs0.6_2.13 jar 0.3.0
org.scala-js : scalajs-library_2.13 jar 0.6.32

provided (1)

Group / Artifact Type Version
org.typelevel : cats-core_sjs0.6_2.13 jar 2.1.1

test (4)

Group / Artifact Type Version
org.scala-js : scalajs-test-bridge_2.13 jar 0.6.32
org.scalatest : scalatest_sjs0.6_2.13 jar 3.0.8
org.scalamock : scalamock_2.13 jar 4.4.0
org.scalacheck : scalacheck_2.13 jar 1.14.1-RC2

Project Modules

There are no modules declared in this project.

travis ci latest release

graphs

graphs is a simple graph library for Scala

Example

@@snip SimpleGraphApp.scala { #simple_graph }

Documentation

Please check the guide and the API docs

Features

  • Simple graph creation API
  • Depth-first traversal / search
  • Breadth-first traversal / search
  • Topological sorting
  • Dijkstras algorithm for shortest paths
  • GraphML import / export (experimental)
  • force based layout (planned)
  • cross compiled for Scala 2.12, 2.13, Scala.js

Motivation

graphs was created to explore different type encoding for graphs and implement well-known algorithms

Goals

  • Support Scala.js
  • Support GraphML
  • Usages of the library and the core interfaces should be intuitive
  • The codebase should follow current idioms and integrate with mainstream libraries for Scala

Non-Goals

  • Support all possible graph types / scenarios
  • Provide a purely functional library

Alternatives

Graph for Scala is probably the most established graph library for Scala and supports many kinds of graphs explicitly (custom syntax etc.) with a big variety of algorithms and extensions (json, dot support).

Its still being worked on and recently added support for Scala.js. It might have a steeper learning curve but is more battle-tested and powerful then graphs.

quiver follows Martin Erwigs Functions Graph Library and appears to be more or less abandoned. Its less focused on algorithms but provides a more functional perspective on graphs.

graphs is inspired and influenced by both libraries. Please check them out to see if they fit your use case and preferences better.

License

graphs is published under the terms of the Apache 2.0 License. See the LICENSE file.

com.flowtick

Versions

Version
0.3.0
0.2.4
0.2.3