We make use of several external libraries for which we maintain a list of dependencies within our update check:
Wherever possible, external libraries should be optional to just the features which make use of them.
The only core external libraries we currently have are:
- Shapely (mandatory for all mapping)
We also include a few small ones within our own code base:
- jQuery & some plugins
When looking to add new functionality, where possible we should make us of our existing libraries.
Where this isn't possible we should try to make use of existing Python libraries:
If these aren't available then we can make use of:
- Java libraries using Py4J: http://py4j.sourceforge.net
- C/C++ libraries using SWIG: http://www.swig.org
- .Net libraries using IronPython: http://www.codeplex.com/IronPython