Movim

Last updated
Movim
Original author(s) Timothée Jaussoin
Developer(s) The Movim Project
Repository
Written in PHP
Type Social network service
License AGPL-3.0-or-later [1] [2]
Website movim.eu

Movim (My Open Virtual Identity Manager) is a distributed social network built on top of XMPP, a popular open standards communication protocol. Movim is a free and open source software licensed under the AGPL-3.0-or-later license. [1] [2] It can be accessed using existing XMPP clients and Jabber accounts.

Contents

The project was founded by Timothée Jaussoin in 2010. It is maintained by Timothée Jaussoin and Christine Ho. [3]

Concept

Movim is a distributed social networking platform. It builds an abstraction layer for communication and data management while leveraging the strength of the underlying XMPP protocol.

XMPP is a widely used open standards communication platform. Using XMPP allows the service to interface with existing XMPP clients like Conversations, Pidgin, Xabber and Jappix. Users can directly login to Movim using their existing Jabber account.

Movim addresses the privacy concerns related to centralized social networks by allowing users set up their own server (or "pod") to host content; pods can then interact to share status updates, photographs, and other social data. [4] Users can export their data to other pods or offline allowing for greater flexibility. [4]

It allows its users to host their data with a traditional web host, a cloud-based host, an ISP, or a friend. The framework, which is being built on PHP, is a free software and can be experimented with by external developers.

Technology

Movim is developed using PHP, CSS and HTML5. [5] The software initially used the Symfony framework. Due to the complexity of the application and the XMPP connection management, developers rewrote Movim as a standalone application. It now has its own libraries and APIs.

Movim was earlier based on the JAXL library for implementing XMPP. [6] JAXL has been replaced by Moxl (Movim XMPP Library), licensed under the AGPL-3.0-only license, [7] to manage connecting to the server through the XMPP WebSocket protocol. This is claimed to have reduced the code complexity and performance load while providing better error management. [8]

The platform used Modl (Movim Data Layer) until the version 0.13, a PHP database layer using DAO Patterns for database interfacing. [9] The project was then migrated to the Laravel Eloquent ORM. [10]

Architecture

The project consists of a set of libraries that provide an abstraction layer on top of XMPP for communication and data management.

Requests are handled by instances of a derived interface controller class. This methodology is similar to the query processing in a MVC framework.

Access to the interface is provided by a system of widgets, allowing through introspection capabilities, to write AJAX elements without using JavaScript. The page display uses a system of nested templates.

See also

Related Research Articles

<span class="mw-page-title-main">Irssi</span> Text-mode IRC client

Irssi is an Internet Relay Chat (IRC) client program for Linux, FreeBSD, macOS and Microsoft Windows. It was originally written by Timo Sirainen, and released under the terms of the GNU GPL-2.0-or-later in January 1999.

<span class="mw-page-title-main">Instant messaging</span> Form of communication over the internet

Instant messaging (IM) technology is a type of online chat allowing immediate transmission of messages over the Internet or another computer network. Messages are typically transmitted between two or more parties, when each user inputs text and triggers a transmission to the recipient(s), who are all connected on a common network. It differs from email in that conversations over instant messaging happen in real-time. Most modern IM applications use push technology and also add other features such as emojis, file transfer, chatbots, voice over IP, or video chat capabilities.

<span class="mw-page-title-main">Pidgin (software)</span> Open-source multi-platform instant messaging client

Pidgin is a free and open-source multi-platform instant messaging client, based on a library named libpurple that has support for many instant messaging protocols, allowing the user to simultaneously log in to various services from a single application, with a single interface for both popular and obsolete protocols, thus avoiding the hassle of having to deal with new software for each device and protocol.

<span class="mw-page-title-main">XMPP</span> Communications protocol for message-oriented middleware

Extensible Messaging and Presence Protocol is an open communication protocol designed for instant messaging (IM), presence information, and contact list maintenance. Based on XML, it enables the near-real-time exchange of structured data between two or more network entities. Designed to be extensible, the protocol offers a multitude of applications beyond traditional IM in the broader realm of message-oriented middleware, including signalling for VoIP, video, file transfer, gaming and other uses.

Message-oriented middleware (MOM) is software or hardware infrastructure supporting sending and receiving messages between distributed systems. MOM allows application modules to be distributed over heterogeneous platforms and reduces the complexity of developing applications that span multiple operating systems and network protocols. The middleware creates a distributed communications layer that insulates the application developer from the details of the various operating systems and network interfaces. APIs that extend across diverse platforms and networks are typically provided by MOM.

<span class="mw-page-title-main">Psi (instant messaging client)</span> Instant messaging client

Psi is a free instant messaging client for the XMPP protocol which uses the Qt toolkit. It runs on Linux, Windows, macOS and OS/2.

ejabberd Server software

ejabberd is an Extensible Messaging and Presence Protocol (XMPP) application server and an MQ Telemetry Transport (MQTT) broker, written mainly in the Erlang programming language. It can run under several Unix-like operating systems such as macOS, Linux, FreeBSD, NetBSD, OpenBSD and OpenSolaris. Additionally, ejabberd can run under Microsoft Windows. The name ejabberd stands for Erlang Jabber Daemon and is written in lowercase only, as is common for daemon software.

<span class="mw-page-title-main">Google Talk</span> Instant messaging service

Google Talk was an instant messaging service that provided both text and voice communication. The instant messaging service was variously referred to colloquially as Gchat, Gtalk, or Gmessage among its users.

<span class="mw-page-title-main">BitlBee</span>

BitlBee is a cross-platform IRC instant messaging gateway, licensed under the terms of the GNU General Public License.

The following is a comparison of instant messaging protocols. It contains basic general information about the protocols.

<span class="mw-page-title-main">Gajim</span> Free instant messaging client for the XMPP protocol

Gajim is an instant messaging client for the XMPP protocol which uses the GTK toolkit. The name Gajim is a recursive acronym for Gajim's a jabber instant messenger. Gajim runs on Linux, BSD, macOS, and Microsoft Windows. Released under the GPL-3.0-only license, Gajim is free software. A 2009 round-up of similar software on Tom's Hardware found version 0.12.1 "the lightest and fastest jabber IM client".

<span class="mw-page-title-main">Jitsi</span> Videoconferencing and messaging software

Jitsi is a collection of free and open-source multiplatform voice (VoIP), video conferencing and instant messaging applications for the Web platform, Windows, Linux, macOS, iOS and Android. The Jitsi project began with the Jitsi Desktop. With the growth of WebRTC, the project team focus shifted to the Jitsi Videobridge for allowing web-based multi-party video calling. Later the team added Jitsi Meet, a full video conferencing application that includes web, Android, and iOS clients. Jitsi also operates meet.jit.si, a version of Jitsi Meet hosted by Jitsi for free community use. Other projects include: Jigasi, lib-jitsi-meet, Jidesha, and Jitsi.

<span class="mw-page-title-main">Socket.IO</span> Library for realtime web applications

Socket.IO is an event-driven library for real-time web applications. It enables real-time, bi-directional communication between web clients and servers. It consists of two components: a client, and a server. Both components have a nearly identical API.

Distributed social network projects generally develop software, protocols, or both.

<span class="mw-page-title-main">Tox (protocol)</span> Distributed protocol for telephony and instant messaging

Tox is a peer-to-peer instant-messaging and video-calling protocol that offers end-to-end encryption. The stated goal of the project is to provide secure yet easily accessible communication for everyone. A reference implementation of the protocol is published as free and open-source software under the terms of the GNU GPL-3.0-or-later.

<span class="mw-page-title-main">Matrix (protocol)</span> Networking protocol for real-time communication and data synchronization

Matrix is an open standard and communication protocol for real-time communication. It aims to make real-time communication work seamlessly between different service providers, in the way that standard Simple Mail Transfer Protocol email currently does for store-and-forward email service, by allowing users with accounts at one communications service provider to communicate with users of a different service provider via online chat, voice over IP, and videotelephony. It therefore serves a similar purpose to protocols like XMPP, but is not based on any existing communication protocol.

<span class="mw-page-title-main">Spark (XMPP client)</span>

Spark is an open-source instant messaging program that allows users to communicate in real time. It can be integrated with the Openfire server to provide additional features such as controlling the various Spark functionalities from a central management console, or integrating with a proprietary customer support service known as Fastpath which allows its users to interact with the platform using the Spark client. Being a cross-platform application, Spark can run on various systems. Installers for Windows, macOS and Linux are available on the official website.

<span class="mw-page-title-main">Xabber</span> Open source instant messaging software

Xabber is a XMPP client for the Android Operating System. It is developed as an open source Project on GitHub and is licensed under the GNU GPL v.3 license. The original developers are from a software company called Redsolution, Inc. Xabber is available on the Android Play Store and on F-Droid.

FlatBuffers is a free software library implementing a serialization format similar to Protocol Buffers, Thrift, Apache Avro, SBE, and Cap'n Proto, primarily written by Wouter van Oortmerssen and open-sourced by Google. It supports “zero-copy” deserialization, so that accessing the serialized data does not require first copying it into a separate part of memory. This makes accessing data in these formats much faster than data in formats requiring more extensive processing, such as JSON, CSV, and in many cases Protocol Buffers. Compared to other serialization formats however, the handling of FlatBuffers requires usually more code, and some operations are not possible.

<span class="mw-page-title-main">Conversations (software)</span> Free software instant messaging client for the XMPP protocol

Conversations is a free software, instant messaging client application software for Android. It is largely based on recognized open standards such as the Extensible Messaging and Presence Protocol (XMPP) and Transport Layer Security (TLS).

References

  1. 1 2 "Movim AGPL-3.0-or-later". GitHub . 13 December 2021.
  2. 1 2 "Movim, License". GitHub . Retrieved 10 January 2016.
  3. "Talk with Movim Developers". 29 June 2013. Retrieved 24 October 2013.
  4. 1 2 "Install Movim". GitHub . 29 March 2017. Retrieved 19 May 2017.
  5. "Movim Technology". 1 August 2012. Archived from the original on 29 October 2013. Retrieved 24 October 2013.
  6. "Movim 0.1". Archived from the original on 24 October 2013. Retrieved 24 October 2013.
  7. "Moxl AGPL-3.0-only". GitHub . 13 December 2021.
  8. "Moxl, Movim's New XMPP library". movim.eu. 2012-09-15. Archived from the original on 29 October 2013. Retrieved 24 October 2013.
  9. "Modl, Movim Data Layer". GitHub . 2015-01-10. Retrieved 10 January 2015.
  10. "From Modl to Eloquent, or how to change a social network database engine". 2018-04-17. Retrieved 17 April 2018.