Let's say an open source software project has a component which could be useful as a standalone project. Examples could include Django's event signalling framework, which could be useful for other Python projects or the client components of Postgres, which are not-quite-common with the HAWQ and Greenplum projects incubating at Apache.

After being given a separate existence these components would then (probably) become an upstream dependency of the project they were originally part of. I have been trying to find examples of this pattern but have been unable to, maybe because I just don't have the right terms to search for.

Has this sort of thing happened often enough that there is a term for it?

What notable examples are there of this being attempted?

  • 4
    The crc32() function was published in the draft PNG specification in 1995 and at the same time implemented in zlib. The zlib version was optimized, and now libpng (and many other projects) depend upon the zlib implementation. Github has 10.5 million instances of "crc32" and 90k instances of 0xedb88320L which is a number appearing in crc32.c. Some of the copies are in other languages (Python, Java, C++). This is all permitted by the zlib license. Nov 2, 2015 at 14:20

1 Answer 1


GTK and glib are spin-off of GIMP. I think it happens often (especially splitting toolkit/libraries from main program, or as the main project as incubator of some tools/related projects), but I don't have a term for it.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.