1 unstable release
0.4.0 | Oct 26, 2021 |
---|
#12 in #graph-theory
545KB
11K
SLoC
snark-tool
Snark tool is simple tool for snarks analysis. Snark is cubic graph with girth at least 5 and cyclic edge connectivity at least 4.
Use as library
Include snark-tool in your Cargo project by adding as a dependency to your Cargo.toml configuration file.
[dependencies]
...
snark-tool = "0.4.0"
Then simply use needed structs or functions in your code.
use crate::graph::undirected::simple_graph::graph::SimpleGraph;
use crate::service::io::reader_g6::G6Reader;
pub fn read_graph(graph_g6: &String) {
let graph: SimpleGraph = G6Reader::read_graph(graph_g6).unwrap();
}
For more examples see examples folder.
Use as binary
At first install cargo. Then install snark-tool.
cargo install snark-tool
To run snark-tool at first we have to define configuration file in YAML format. Here we can specify what we want to do.
version: 0.1
procedures:
- proc-type: read
config:
file: input-file.g6
graph-format: g6
# means regular 3-edge coloring
- proc-type: colour
config:
colouriser-type: dfs
- proc-type: write
config:
file: output.json
graph-format: s6
# if set to true, file format will be json for g6/s6 graph format
with-properties: true # default true
- proc-type: count
Basic usage is that snark-tool takes input file, read graphs from specified format. Then applies/perform specified procedures (in this case edge colouring) over graphs and at the end writes graphs to output file.
When we have specified configuration file with name snark-tool.yml we can start snark-tool using terminal command:
snark-tool run snark-tool.yml
For full description of available procedures and its configuration see procedures.md.
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
To be noted
Package and all its parts are WIP. Package's API can change rapidly from version to version.
Dependencies
~13MB
~235K SLoC