An open API service indexing awesome lists of open source software.

https://github.com/disruptek/gram

generic graphs in Nim 🕸
https://github.com/disruptek/gram

gram graph nim

Last synced: 28 days ago
JSON representation

generic graphs in Nim 🕸

Awesome Lists containing this project

README

        

# gram

[![Test Matrix](https://github.com/disruptek/gram/workflows/CI/badge.svg)](https://github.com/disruptek/gram/actions?query=workflow%3ACI)
[![GitHub release (latest by date)](https://img.shields.io/github/v/release/disruptek/gram?style=flat)](https://github.com/disruptek/gram/releases/latest)
![Minimum supported Nim version](https://img.shields.io/badge/nim-1.2.13%2B-informational?style=flat&logo=nim)
[![License](https://img.shields.io/github/license/disruptek/gram?style=flat)](#license)

Simple generic graphs

## Goals
- generic node and edge types
- predictably fast performance
- predictably mild memory behavior
- predictably _idiomatic_ API
- **hard to misuse**

## Installation

```
$ nimph clone disruptek/gram
```
or if you're still using Nimble like it's 2012,
```
$ nimble install https://github.com/disruptek/gram
```

### Graphviz (dot) Output

For this, you'll need to install
[haxscramper's](https://github.com/haxscramper)
[hmisc](https://github.com/haxscramper/hmisc) and
[hasts](https://github.com/haxscramper/hasts) libraries; then you can
`import gram/graphviz` to get the `dotRepr` and `toPng` procedures.

```
$ nimph clone hmisc
$ nimph clone hasts
```

## Documentation

I'm going to try a little harder with these docs by using `runnableExamples`
so the documentation demonstrates _current_ usage examples and working tests
despite the rapidly-evolving API.

[See the documentation for the gram module as generated directly from the
source.](https://disruptek.github.io/gram/gram.html)

## License
MIT