Community:SummerOfCode16:Brainstorming: Difference between revisions

→‎Instantbird: Expand libpurple project
(→‎Mozilla Science Lab: Moving updated idea over)
(→‎Instantbird: Expand libpurple project)
Line 172: Line 172:
|-
|-
| Redesign libpurple integration
| Redesign libpurple integration
| Change libpurple from being an XPCOM component to a separate (sub-)process that uses IPC to communicate to it
| Currently Thunderbird can have additional protocols added to them via libpurple. This is distributed separately because of licensing compatibilities. There is a shim later (called purplexpcom) which translates from Thunderbird's chat interfaces to libpurple's interfaces. Unfortunately this is:
| C++, XPCOM, JavaScript
 
* Time consuming to maintain
* Difficult to compile
* Requires re-compilation for each Thunderbird version
* Is not binary compatible with system libpurples
 
It is desirable to experiment with different ways to interact with libpurple to redesign this interface. Potential experiments include:
 
* Using js-ctypes to interact with the libpurple binary component (instead of C++ XPCOM code)
* Spawn a separate sub-process and use IPC to communicate with libpurple
* Compile libpurple to JavaScript with emscripten
 
Requires understanding of: C, C++, XPCOM, JavaScript
| C, C++, XPCOM, JavaScript
| Patrick Cloke
| Patrick Cloke
|
|
Confirmed users
161

edits