-
-
Notifications
You must be signed in to change notification settings - Fork 1k
GSoC_2019_project_distribution
Installing Shogun is not the easiest task from source. Hence, we have started to add support for binary distribution of Shogun. Currently there are two ways to get on hold of libshogun, the C++ API and the Python interface:
This is not even covering half of the distributions and interfaces that Shogun supports. The aim of the project would be to extend the supported packaging frameworks and integrate with them.
Medium.
You need know
- various packaging methods (deb, npm, jar, pypi etc.)
- basic DevOps skills
- basic buildbot knowledge
We would like to be able to integrate with all the language-specific packaging systems, which would allow various users of Shogun to quickly install the library and use it out-of-the-box.
Namely, we would like to integrate with the following packaging systems---the list is in priority order:
- Maven and JigSaw for Java/JVM
- PyPi for Python
- CRAN for R
- WebAssembly for JavaScript
- NuGet for MS Windows and C#
- RubyGems
- NPM for JavaScript
Ideally by the end of the GSoC project there would be integration with all of these packaging framework as well as integrating it into our release pipeline (done in buildbot) so the new releases would automatically roll out everywhere.
WebAssembly is a great initiative that is a new portable, size- and load-time-efficient format suitable for compilation to the web. Using emscripten one can take a C/C++ project and compile it into a JavaScript code that uses asm.js
. Using this the idea is to create wasm of shogun and run it in the user's browser (or at least part of it).
There has been experiments done on OpenCV and WebAssembly, which has a similarly complex and big C/C++ codebase as Shogun. This could be a good starting point for this task.