View on GitHub


Topic-based Javascript PubSub for vanilla, jQuery and Underscore

Download this project as a .zip file Download this project as a tar.gz file

Subtopic provides topic-based PubSub for javascript. Originally based on Peter Higgins' port from Dojo to JQuery and updated with support for message chaining inspired by Morgan Roderik's PubSubJS.

Vanilla javascrip:

NuGet here:

subtopic.subscribe(topic, callback)
subtopic.publish(topic, [payload])


NuGet here:

_.subscribe(topic, callback)
_.publish(topic, [payload])



$.subscribe(topic, callback)
$.publish(topic, [payload])


Check out the official performance comparison here:

Topic chaining

To use topic chaining divide your topics using forward slashes e.g. app/region/module/event. A subscriber will execute the callback function for the subscribed topic and any sub-topics.

The following publications will each invoke the callback for a subscription to app/region:

$.publish("app/region", [])
$.publish("app/region/module", [])
$.publish("app/region/module/event", [])

If you do NOT require topic chaining I would recommend using Peter Higgins´ port from Dojo here:


$(function() {
    $.subscribe("app/region", function() {
        alert("Sub to app/region: " + arguments[0]);

    $.subscribe("app", function() {
        alert("Sub to app: " + arguments[0]);

    $.publish("app/region/module", ["Pub in module", "arg2"]);
    $.publish("app/region", ["Pub in region", "arg2"]);
    $.publish("app", ["Pub in app", "arg2"]);

JsFiddle here: