60
edits
(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. |