Thread overview
Updates to D graph library
Sep 13, 2013
ilya-stromberg
Sep 13, 2013
ilya-stromberg
September 12, 2013
Hello all,

Today I pushed a number of major (and breaking) changes to the master repository of the D graph library.  I've provided a brief summary on my blog, which also describes how to revise any programs to work with the new code:
http://braingam.es/2013/09/d-graph-library-updates/

I hope that these changes don't unduly inconvenience anyone currently using the library.  My own take was that it's worth it in terms of moving to a generic design and offering some new higher-performance graph data structures, which I'll be describing in more detail some time soon.

Feedback on the new code is welcome.  I would also like to offer thanks to all the nice people on D.learn who contributed useful ideas that helped with this update :-)

Thanks & best wishes,

    -- Joe
September 13, 2013
On Thursday, 12 September 2013 at 20:11:30 UTC, Joseph Rushton Wakeling wrote:
> Hello all,
>
> Today I pushed a number of major (and breaking) changes to the master repository of the D graph library.  I've provided a brief summary on my blog, which also describes how to revise any programs to work with the new code:
> http://braingam.es/2013/09/d-graph-library-updates/
>
> I hope that these changes don't unduly inconvenience anyone currently using the library.  My own take was that it's worth it in terms of moving to a generic design and offering some new higher-performance graph data structures, which I'll be describing in more detail some time soon.
>
> Feedback on the new code is welcome.  I would also like to offer thanks to all the nice people on D.learn who contributed useful ideas that helped with this update :-)
>
> Thanks & best wishes,
>
>     -- Joe

Do you have any plans to change license from GPLv3 to something more liberal like Boost, MIT or BSD? Without this it's impossible to use your library for commercial purposes.
September 13, 2013
On Friday, 13 September 2013 at 07:49:49 UTC, ilya-stromberg wrote:
> Do you have any plans to change license from GPLv3 to something more liberal like Boost, MIT or BSD? Without this it's impossible to use your library for commercial purposes.

The licence is GPLv3+ because the code is closely influenced by igraph, which is GPLv3-licensed. It's not like there's copy-pasting, but it's not clean-room either, so offering a permissive licence might put users in an invidious situation if the igraph authors chose to make an issue of it. Unlikely, but better safe than sorry.

If anyone wants to use it in a commercial application the best thing probably to let me know and I can discuss with the igraph authors. I will probably do so anyway once the library is more feature-complete, less out of concern for commercial apps than in order not to be incompatible with other free licenses.
September 13, 2013
On Friday, 13 September 2013 at 08:20:38 UTC, Joseph Rushton Wakeling wrote:
> On Friday, 13 September 2013 at 07:49:49 UTC, ilya-stromberg wrote:
>> Do you have any plans to change license from GPLv3 to something more liberal like Boost, MIT or BSD? Without this it's impossible to use your library for commercial purposes.
>
> The licence is GPLv3+ because the code is closely influenced by igraph, which is GPLv3-licensed. It's not like there's copy-pasting, but it's not clean-room either, so offering a permissive licence might put users in an invidious situation if the igraph authors chose to make an issue of it. Unlikely, but better safe than sorry.
>
> If anyone wants to use it in a commercial application the best thing probably to let me know and I can discuss with the igraph authors. I will probably do so anyway once the library is more feature-complete, less out of concern for commercial apps than in order not to be incompatible with other free licenses.

I see. You can use Boost Graph Library (BGL) as a initial point. It's under Boost license that allows commercial usage.
http://www.boost.org/doc/libs/1_54_0/libs/graph/doc/index.html

Also, it would be nice to have graph library in Phobos in a future, and in that case module must be under Boost license.

But yes, you can try to contact igraph authors - maybe they let you change the license.
September 13, 2013
On Friday, 13 September 2013 at 08:45:45 UTC, ilya-stromberg wrote:
> I see. You can use Boost Graph Library (BGL) as a initial point. It's under Boost license that allows commercial usage.
> http://www.boost.org/doc/libs/1_54_0/libs/graph/doc/index.html

I'm aware of the BGL, but I didn't find it a very nice design.  I was also influenced by the fact that among colleagues who work with the various graph libraries, none of them seem to favour it -- whereas igraph seems both popular and high-performing (I believe it can scale to larger data size than any other solution out there).  But of course I may revisit that in future.

> Also, it would be nice to have graph library in Phobos in a future, and in that case module must be under Boost license.

Understood, although I never particularly saw Dgraph as being a Phobos candidate, it feels a bit too specialized.  My impression is that graph libraries tend in practice to sprawl out into massive constructions, rather too extended for something like a standard library.

But if the core functionality is something people are interested in for Phobos, then again, I'm happy to open up the licensing discussion.  I'm sure that the igraph authors would be supportive.