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.
This project has begun just now, and a v0.1.0 release with basic Graph classes can be expected by January 2018.
- Clone the repository with
git clone git@github.com:athityakumar/networkx.rb.git
- Navigate to networkx with
cd networkx.rb
- Install dependencies with
gem install bundler && bundle install
- Install networkx gem with
rake install
- Start checking out in PRY / IRB console :
require 'networkx'
#=> true
# Yet to be implemented
g = NetworkX::Graph.new()
g.add_edge('start', 'stop')
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.
Your contributions are always welcome! Please have a look at the contribution guidelines first. 🎉
The MIT License 2017 - Athitya Kumar. Please have a look at the LICENSE.md for more details.