graphs.jl
An optimized graphs package for the Julia programming language
Science Score: 54.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
✓Committers with academic emails
16 of 212 committers (7.5%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (19.7%) to scientific vocabulary
Keywords
Keywords from Contributors
Repository
An optimized graphs package for the Julia programming language
Basic Info
- Host: GitHub
- Owner: JuliaGraphs
- License: other
- Language: Julia
- Default Branch: master
- Homepage: http://juliagraphs.org/Graphs.jl/
- Size: 17.5 MB
Statistics
- Stars: 499
- Watchers: 13
- Forks: 108
- Open Issues: 141
- Releases: 21
Topics
Metadata Files
README.md
Graphs.jl
Overview
The goal of Graphs.jl is to offer a performant platform for network and graph analysis in Julia, following the example of libraries such as NetworkX in Python. To this end, Graphs.jl offers:
- a set of simple, concrete graph implementations --
SimpleGraph(for undirected graphs) andSimpleDiGraph(for directed graphs) - an API for the development of more sophisticated graph implementations under the
AbstractGraphtype - a large collection of graph algorithms with the same requirements as this API.
Installation
Installation is straightforward. First, enter Pkg mode by hitting ], and then run the following command:
julia-repl
pkg> add Graphs
Basic use
Graphs.jl includes numerous convenience functions for generating graphs, such as path_graph, which builds a simple undirected path graph of a given length. Once created, these graphs can be easily interrogated and modified.
```julia-repl julia> g = path_graph(6) {6, 5} undirected simple Int64 graph
Number of vertices
julia> nv(g) 6
Number of edges
julia> ne(g) 5
Add an edge to make the path a loop
julia> add_edge!(g, 1, 6); ```
Documentation
The full documentation is available at GitHub Pages. Documentation for methods is also available via the Julia REPL help system. Additional tutorials can be found at JuliaGraphsTutorials.
Citing
We encourage you to cite our work if you have used our libraries, tools or datasets. Starring the Graphs.jl repository on GitHub is also appreciated.
The latest citation information may be found in the CITATION.bib file within the repository.
Contributing
We welcome contributions and bug reports! Please see CONTRIBUTING.md for guidance on development and bug reporting.
JuliaGraphs development subscribes to the Julia Community Standards.
Related packages
It is an explicit design decision that any data not required for graph manipulation (attributes and other information, for example) is expected to be stored outside of the graph structure itself.
Additional functionality like advanced IO and file formats, weighted graphs, property graphs, and optimization-related functions can be found in the packages of the JuliaGraphs organization.
Project status
The Graphs.jl project is a reboot of the LightGraphs.jl package (archived in October 2021), which remains available on GitHub at sbromberger/LightGraphs.jl. If you don't need any new features developed since the fork, you can continue to use older versions of LightGraphs.jl indefinitely. New versions will be released here using the name Graphs.jl instead of LightGraphs.jl. There was an older package also called Graphs.jl. The source history and versions are still available in this repository, but the current code base is unrelated to the old Graphs.jl code and is derived purely from LightGraphs.jl. To access the history of the old Graphs.jl code, you can start from commit 9a25019.
Transition from LightGraphs to Graphs
LightGraphs.jl and Graphs.jl are functionally identical, still there are some steps involved making the change:
- Change
LightGraphs = "093fc24a-ae57-5d10-9952-331d41423f4d"toGraphs = "86223c79-3864-5bf0-83f7-82e725a168b6"in your Project.toml. - Update your
usingandimportstatements. - Update your type constraints and other references to
LightGraphstoGraphs. - Increment your version number. Following semantic versioning, we suggest a patch release when no graphs or other
Graphs.jl-objects can be passed through the API of your package by those depending on it, otherwise consider it a breaking release. "Passed through" entails created outside and consumed inside your package and vice versa. - Tag a release.
About versions
- The master branch of Graphs.jl is generally designed to work with versions of Julia starting from the LTS release all the way to the current stable release, except during Julia version increments as we transition to the new version.
- Later versions: Some functionality might not work with prerelease / unstable / nightly versions of Julia. If you run into a problem, please file an issue.
- The project was previously developed under the name LightGraphs.jl and older versions of LightGraphs.jl (≤ v1.3.5) must still be used with that name.
- There was also an older package also called Graphs.jl (git tags
v0.2.5throughv0.10.3), but the current code base here is a fork of LightGraphs.jl v1.3.5. - All older LightGraphs.jl versions are tagged using the naming scheme
lg-vX.Y.Zrather than plainvX.Y.Z, which is used for old Graphs.jl versions (≤ v0.10) and newer versions derived from LightGraphs.jl but released with the Graphs.jl name (≥ v1.4). - If you are using a version of Julia prior to 1.x, then you should use LightGraphs.jl at
lg-v.12.*or Graphs.jl atv0.10.3
Owner
- Name: JuliaGraphs
- Login: JuliaGraphs
- Kind: organization
- Website: https://juliagraphs.org
- Repositories: 34
- Profile: https://github.com/JuliaGraphs
Graph modeling and analysis packages for the Julia programming language
Citation (CITATION.bib)
@misc{Graphs2021,
author = {Fairbanks, James and Besan{\c{c}}on, Mathieu and Simon, Sch{\"o}lly and Hoffiman, J{\'u}lio and Eubank, Nick and Karpinski, Stefan},
title = {JuliaGraphs/Graphs.jl: an optimized graphs package for the Julia programming language},
year = 2021,
url = {https://github.com/JuliaGraphs/Graphs.jl/}
}
GitHub Events
Total
- Create event: 8
- Commit comment event: 9
- Release event: 3
- Issues event: 16
- Watch event: 40
- Delete event: 8
- Issue comment event: 201
- Push event: 52
- Pull request review event: 85
- Pull request review comment event: 81
- Pull request event: 55
- Fork event: 11
Last Year
- Create event: 8
- Commit comment event: 9
- Release event: 3
- Issues event: 16
- Watch event: 40
- Delete event: 8
- Issue comment event: 201
- Push event: 52
- Pull request review event: 85
- Pull request review comment event: 81
- Pull request event: 55
- Fork event: 11
Committers
Last synced: 11 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Seth Bromberger | s****r | 609 |
| CarloLucibello | c****o@g****m | 169 |
| James Fairbanks | j****s@g****m | 101 |
| Dahua Lin | l****a@g****m | 75 |
| Simon Schoelly | s****l@g****m | 58 |
| dehann | d****e@g****m | 47 |
| Guillaume Dalle | 2****e | 29 |
| afternone | a****e@1****m | 28 |
| Soham Tamba | s****a@g****m | 24 |
| Mathieu Besançon | m****n@g****m | 24 |
| Katharine Hyatt | k****t | 23 |
| Etienne dg | e****s@i****r | 20 |
| athulappadan | a****n@g****m | 19 |
| Júlio Hoffimann | j****n@g****m | 18 |
| Miles Gould | m****s@a****k | 16 |
| David Einstein | d****t@g****m | 15 |
| Viral B. Shah | V****h | 13 |
| Pranav | p****t@g****m | 13 |
| Azzaare | j****r@g****m | 13 |
| Moritz Schauer | m****r@w****e | 13 |
| John Myles White | j****w@j****m | 12 |
| Raphael Sofaer | r****i@s****t | 12 |
| Nick Foti | n****1@g****m | 11 |
| Abhinav Mehndiratta | a****a@g****m | 10 |
| Aurora Rossi | 6****i | 10 |
| Iain Dunning | i****g@g****m | 10 |
| Alain Lichnewsky | A****y@g****m | 8 |
| Andy Hayden | a****1@g****m | 8 |
| Divyansh | s****i@g****m | 8 |
| dependabot[bot] | 4****] | 8 |
| and 182 more... | ||
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 145
- Total pull requests: 251
- Average time to close issues: 5 months
- Average time to close pull requests: about 2 months
- Total issue authors: 70
- Total pull request authors: 70
- Average comments per issue: 2.6
- Average comments per pull request: 3.76
- Merged pull requests: 165
- Bot issues: 0
- Bot pull requests: 27
Past Year
- Issues: 16
- Pull requests: 65
- Average time to close issues: 20 days
- Average time to close pull requests: 16 days
- Issue authors: 13
- Pull request authors: 25
- Average comments per issue: 0.88
- Average comments per pull request: 3.05
- Merged pull requests: 37
- Bot issues: 0
- Bot pull requests: 7
Top Authors
Issue Authors
- gdalle (43)
- etiennedeg (10)
- jlapeyre (4)
- aurorarossi (4)
- simonschoelly (4)
- KeishiS (3)
- SuperGrobi (3)
- filchristou (3)
- mtfishman (3)
- anandijain (2)
- CarloLucibello (2)
- nsajko (2)
- tecosaur (2)
- AntoineBut (2)
- linkhochon (2)
Pull Request Authors
- gdalle (29)
- simonschoelly (20)
- dependabot[bot] (20)
- etiennedeg (17)
- Tortar (12)
- filchristou (10)
- Krastanov (9)
- aurorarossi (9)
- thchr (8)
- github-actions[bot] (6)
- pgrepds (4)
- damianodegaspari (4)
- AntoineBut (4)
- rafaqz (4)
- SuperGrobi (4)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- JuliaRegistries/TagBot v1 composite
- actions/cache v1 composite
- actions/checkout v2 composite
- codecov/codecov-action v1 composite
- julia-actions/julia-buildpkg v1 composite
- julia-actions/julia-processcoverage v1 composite
- julia-actions/julia-runtest v1 composite
- julia-actions/setup-julia v1 composite