Difference between revisions of "GSoC/2019/Project Ideas"

Jump to navigation Jump to search
3,214 bytes added ,  11:02, 6 February 2019
Add initial project ideas for Prosody
(Add initial project ideas for Prosody)
Line 102: Line 102:


Currently Smack can establish connections via TCP/IP and HTTP via BOSH. WebSockets are yet another way to connect to a server.
Currently Smack can establish connections via TCP/IP and HTTP via BOSH. WebSockets are yet another way to connect to a server.
== Prosody IM ==
'Website:'' https://prosody.im/<br/>
''Source Code:'' https://hg.prosody.im/<br/>
''Description:'': Prosody is a lightweight XMPP server that aims to be easy to set up and configure, and efficient with system resources.<br/>
''Project Contact Person:'' Matthew Wild [mailto:mwild1@gmail.com <mwild1@gmail.com>]<br/>
''List of Teaser Tasks:'' https://issues.prosody.im/?q=state%3Dopen+difficulty%3Deasy
''Contact chat:'' [xmpp:prosody@conference.prosody.im prosody@conference.prosody.im]
=== Standalone mod_firewall ===
''Brief explanation:'' This project would produce a version of mod_firewall that runs standalone and can be connected
with any XEP-0114 compliant server.<br/>
''Involved Technologies:'' Lua, XMPP<br/>
''Mentor(s):'' Matthew Wild (MattJ) [mailto:mwild1@gmail.com <mwild1@gmail.com>], Kim Alvefur (Zash)<br/>
''Deliverables / Expected Results:''<br/>
* Standalone server-independent mod_firewall
* Server-side implementation that uses external mod_firewall for determining whether/how to to route a stanza.
''Milestones:''<br/>
# Design and document server-independent protocol for communicating with external mod_firewall.
# Develop standalone mod_firewall process that connects to a XEP-0114 compliant server and implements above protocol.
# Develop server-side code to communicate with external mod_firewall and allow it to filter stanzas.
Prosody's mod_firewall is a rule-based XMPP-layer firewall that is useful for security and
anti-spam purposes. However it currently only works with Prosody, and needs to be loaded
into the main process.
This project would produce a version of mod_firewall that runs standalone and can be connected
with any XEP-0114 compliant server.
The project would include:
- Protocol design: develop and document (in XEP form) a protocol whereby a server may submit a stanza to the standalone mod_firewall and receive a decision.
- Coding (Lua): adapt mod_firewall's core code to run standalone, and connect to servers as a component implementing this protocol.
- Coding: Additionally add support for the new protocol to an XMPP server of your choice.
=== Prosody plugin installer ===
''Brief explanation:'' This project would produce an easy way to install and manage plugins for the Prosody server.<br/>
''Involved Technologies:'' Lua<br/>
''Mentor(s):'' Matthew Wild (MattJ) [mailto:mwild1@gmail.com <mwild1@gmail.com>], Kim Alvefur (Zash)<br/>
''Deliverables / Expected Results:''<br/>
* Commands to install, update, remove and list installed plugins.
* Scripts to build and manage a repository of plugins.
''Milestones:''<br/>
# Implement command to install a plugin from a repository
# Implement commands to remove and update installed plugins
# Develop scripts to build a plugin repository.
Prosody has hundreds of community modules that provide additional features and extensions to the core server. Currently installing
these is a manual process that currently involves a number of manual steps.
The goal of this project would be to produce simple commands to install, update and remove community modules. Rather than inventing
a new package manager, the project would ideally build on top of the luarocks project.

Navigation menu