NetworkX.rb
NetworkX is a very popular Python library, that handles various use-cases of the Graph Data Structure.
This project intends to provide a working alternative to the Ruby community, by closely mimicing as many features as possible.
List of contents
Installing
-
Clone the repository or fork
-
Clone this repository with
git clone https://github.com/sciruby-jp/networkx.rb.git
-
or You can fork and do clone it.
-
Navigate to networkx with
cd networkx.rb
-
Install dependencies with
gem install bundler && bundle install
require 'networkx'
g = NetworkX::Graph.new
g.add_edge('start', 'stop')
Document
You can read Document for this library.
Roadmap
Quite easily, any networkx user would be able to understand the number of details that have been implemented in the Python library. As a humble start towards the release of v0.1.0, the following could be the goals to achieve :
-
Node
: This class should be capable of handling different types of nodes (not justString
/Integer
).
A possible complex use-case could be XML nodes. -
Edge
: This class should be capable of handling different types of edges.
Though a basic undirected Graph doesn’t store any metadata in the edges, weighted edges and parametric edges are something that need to be handled. -
Graph
: The simplest of graphs.
This class handles just connections between differentNode
s viaEdge
s. -
DirectedGraph
: Inherits fromGraph
class.
Uses directions betweenEdge
s.
Contributing
Your contributions are always welcome!
Please have a look at the contribution guidelines first. :tada:
License
The MIT License 2017 - Kumar[https://github.com/athityakumar].
Please have a look at the LICENSE.md for more details.