Giter Site home page Giter Site logo

sojolicious's Introduction

Sojolicious

Sojolicious is a toolkit for the federated social web, containing plugins for the powerful web framework Mojolicious written in Perl.

Synopsis

  use Mojolicious::Lite;

  # Load Plugins
  plugin 'Webfinger';
  plugin 'PubSubHubbub';
  plugin 'Salmon';

  # Esablish Salmon Endpoints:
  group {
    under '/salmon';
    (any '/:acct/mentioned')->salmon('mentioned');
    (any '/:acct/all-replies')->salmon('all-replies');
    (any '/signer')->salmon('signer');
  };

  # Add pubsubhubbub callback url
  (any '/pubsub')->pubsub;

  hook on_salmon_follow => sub {
    # ... You received a follow request
  };

  hook on_pubsub_content => sub {
    my ($c, $type, $dom) = @_;
    # ... You receive feed information you subscribed to
  };

  app->start;

Goal

Sojolicious mainly focus on support for the OStatus meta protocol and aims for a straight forward implementation of all surrounding specifications.

Due to the success of Mastodon it is unlikely this path will be followed in the future.

The design goal was to make all plugins useful on their own, as separated building blocks of OStatus, while playing well with each other. All plugins are application (despite the fact that they are Mojolicious plugins) and storage agnostic, providing event driven hooks for usage.

See nils-diewald.de for recent updates.

Plugins for ...

There were plans to expand the scope to other social protocols later, for example OExchange.

Acknowledgement

  • ActivityStreams was developed by Martin Atkins, Will Norris, Chris Messina, Monica Wilkinson, and Rob Dolin.
  • Atom was developed by Mark Nottingham and Robert Sayre.
  • Atom Threading Extensions> was developed by James M. Snell.
  • HostMeta was developed by Eran Hammer-Lahav and Blaine Cook.
  • MagicSignatures was developed by John Panzer, Ben Laurie, and Dirk Balfanz.
  • Mojolicious is written by Sebastian Riedel.
  • OStatus was developed by Evan Prodromou, Brion Vibber, James Walker, and Zach Copley.
  • PortableContacts was developed by Joseph Smarr.
  • PubSubHubbub was developed by Brad Fitzpatrick, Brett Slatkin, and Martin Atkins.
  • Salmon was developed by John Panzer.
  • Webfinger was developed by Brad Fitzpatrick, Eran Hammer-Lahav, Blaine Cook, John Panzer, and Joe Gregorio.
  • XRD was developed by Eran Hammer-Lahav and Will Norris.

... just to name the persons officially responsible for maintaining the code and the specifications. Thanks to all contributors of these projects as well!

And thanks to all implementors of these specifications for inspiring code (which is referenced in the sourcecode).

Participation on conferences was supported by the BMBF-project Linguistic Networks.

Where to learn more?

http://mojolicio.us,http://ostatus.org/.

... and?

Copyright (C) 2011-2013, Nils Diewald.

This program is free software, you can redistribute it and/or modify it under the same terms as Perl.

sojolicious's People

Contributors

akron avatar

Stargazers

Thibault Duponchelle avatar  avatar Hans Svensson avatar Yuki Kimoto avatar Ruben avatar Alexander Karelas avatar Dotan Dimet avatar Rob Hammond avatar Zaki Mughal [sivoais] avatar  avatar Jeremy Malcolm avatar Sascha Kiefer avatar Duck Nebuchadnezzar avatar Matthias Pfefferle avatar

Watchers

 avatar James Cloos avatar

sojolicious's Issues

Is Sojolicious for me?

I want a combination blog and StatusNet interface. As I see it, I have two options. Using Sojolicious will make the StatusNet part really easy, but I would have to write the blog software from scratch. The second option is to try to add some StatusNet support into the Perl blog module Bryar, which would make the blog part really easy, but the StatusNet part hard (given that Bryar is not based around Mojolicious, and that there seem to be no maintained non-Mojolicious modules that would help me).

Any advice? Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.