My application has two parts GUI and a backend algorithm module. I have used a library under GPLv3 to write my GUI. In the GUI we can create a workflow of different digital signal processing units so I thought to share this GUI to the community under GPL, but I wish to keep my some algorithm modules as proprietary, what are the possible approaches?
That's easy. Make sure you don't compile your GUI and your algorithms together statically as a single executable. If you do that, you don't have any GPL obligation for your algorithms.
- Run your algorithms as a command-line tool and use inter-process communication in your GUI. This is a very common implementation in computer chess engines.
- Run your algorithms as an internal web server and use internal web connection
Example from computer chess (use process communication):
To do this validly, you must make sure that the free and non-free programs communicate at arms length, that they are not combined in a way that would make them effectively a single program.