3 ms·
I guess this is intended as an alternative to networkx? I've not used nx for a while, it would be interesting to see a comparison. A quick eyeball suggests a no
by specproc 3y ago
I guess this is intended as an alternative to networkx? I've not used nx for a while, it would be interesting to see a comparison. A quick eyeball suggests a not dissimilar API and a smaller feature-set.
What's the use case? Performance? In which case it'd be nice to see benchmarks.
- _the_inflator 3y agoDocumentation seems a bit buggy. For example, accessing the link for visualization leads to a 404. Visualization is something, where NetworkX is not the fanciest lib, rather pragmatic.
- mgao97 3y agoThank you for pointing this out. We have solved it and relinked it to the correct one.
- lmeyerov 3y agoNot sure on easygraph, but we have gpu graph viz generation 1-liners for pandas/nx/igraph/cugraph/parquet/arrow @ http://github.com/graphistry/pygraphistry http://github.com/graphistry/pygraphistry . If easygraph works with the rest of the pydata world, I'd hope just another 1-liner away. We're now working on louie.ai to make using them all together even easier, all the way to systems like splunk & databricks :)
- eoverride 3y agoThis seems rather redundant given that graph-tool exists: https://graph-tool.skewed.de https://graph-tool.skewed.de It does visualization fairly well — not to mention that the entire back-end is in C++ with templates + OpenMP for performance.
- lmeyerov 3y agoThere's room for a lot of these to grow and solve different problems. As I see the design space for those 2: I like graph-tool for the variety of algs and CPU performance, focus on modeling, and will refer people to it when they outgrow nx/ix. However, it is (currently) not as approachable as others for example, which matters for social scientists who aren't devs, and for perf, we like cuGraph because both GPU/multi-GPU for the alg subset it does do, which is often 'enough'. Also, graph tool's licensing is not allowed by many of our users, while cugraph and easygraph's are. Generally, these libraries have viz but more just to check the box, and integrations to more dedicated tools improve that story. These libraries take a lot of work, and both are impressive here. Something I look for is sustainability - will it outlive the life of a grad student or postdoc primary contributor getting their next job, or a professor's interests naturally shifting, or a startup if their next funding round doesn't happen / evilCorp acquihires them. This is extra poignant with redisgraph shutting down. A good tell is if it has been around X years, good chance it'll be around X/2 more, something like that. Very few at that level in the graph world!
- eoverride 3y agograph-tool is LGPL, which means it can be used as a library even in proprietary code. So I don't know how it could not be allowed for your users. The python API is almost identical to 'EasyGraph'. I'm curious why you consider it less approachable. graph-tool visualization is killer. Not an after-thought to check a box. You can do animations, visualize interactively (move node positions with the mouse), generate publication-quality SVG/PNG/PDF seamlessly, integrate with other applications using GTK, cairo, etc. It has been around since 2006, and is maintained by an academic group.
- lmeyerov 3y agoWe see many non-academic users (startups, enterprises, gov, ...) where it is common to only allow licenses like Apache, MIT, & BSD for libraries, so LGPL often makes sw not even a contender Like I said, I'm a fan and refer folks to it when fits. Other libraries focus on strengths like licensing, viz, perf, AI, ease, etc that graph-tool doesn't invest as much in. Ex: competing with Nvidia on GPU computing is doable, but takes a special kind of focus - it's not an accident we have been working with them for years. Graph-tool is strong in general, just not everything to everyone.
- eoverride 3y agoIt seems entirely nonsensical not to allow LGPL for library code, since it does not add any restrictions compared to BSD/MIT/etc. You should advise your users better in this regard, since they seem to not understand how these licenses work.
- lmeyerov 3y agoLGPL is understood to incur stipulations in scenarios like static linking, which for a dev library, can be a concern. These concerns are not in MIT/BSD/Apache, which is why professional organizations often have rules allowing only the latter. It takes undesirable work by developers to go against their organizational guidelines. My job isn't to advise users on legal matters nor promote graph-tool, though I do try to increase awareness of options in general as a neutral technical party. The graph-tool's community's decision to use & stick to a relatively unpopular license (outside of academia), and the ensuing issues around legal, practical, and perception... are problems for the graph-tool community to address, not me. We OSS our work as MIT/BSD/Apache because that's what our users accept and pay us to do. That's all that's in our control.
- VHRanger 3y agoNetworkX represents all graph nodes as python objects and edges as python references pointing to each other. Not sure on easygraphs backend representation, but it's not hard to do >100x better in memory usage and speed than nx.
- mgao97 3y agoI agree with you. More use cases can be found here https://easy-graph.github.io/docs/index.html https://easy-graph.github.io/docs/index.html