Check out new features in Diffusion 6.8.0

  • Gateway Framework
    This release provides support for a new integration framework that allows users to write simple applications which can consume data from external data sources and publish to Diffusion topics or consume Diffusion topic updates and publish to external data sources.
  • Topic views calculations and conditionals
    Diffusion’s data wrangling capabilities continue to grow with the introduction of the new ‘process’ transformation within topic views which allows calculations to be performed upon input JSON values and the results ‘set’ as fields in the output JSON.
  • Journal logging
    Diffusion observability is improved with the introduction of the journal log. This is a new optional log which can log significant events such as API calls to a separate log, recording timestamps and the originator (principal) of the event.
  • Individual topic view retrieval
    It is now possible to retrieve a single named topic view using a new getTopicView method available in all SDKs.
  • Metric collector improvements
    It is now possible to group topic metric collectors by the number of path segments following the selector path prefix. This allows metric collector granularity down to individual topics if required. There is also now the option to limit the number of dimensions created by a topic or session metric collector.

Read What's New in the Manual for more details.

Version 6.8.0

Requires JDK 8 (1.8.0_131 or higher) or Java 11 JDK (11.0.3 GA or higher, Hotspot JVM)

Download and Install

SDK Downloads

By downloading any of these SDKs you agree to abide by our Terms and Conditions.

Get the minified JavaScript:

Include a specific version of JavaScript in a web page:

<script src="">

Use with Node.js:

Install with npm.

npm install diffusion

Include in your Node.js application.

var diffusion = require('diffusion');

Use TypeScript definitions with the client library:

If you got the client library using npm, the TypeScript definition file is included.
You can also download the TypeScript file from the following URL:

Include the TypeScript definition file in your IDE project to use the TypeScript definitions when developing for a client.

Enable message compression:

To enable optional zlib message compression in browser applications, you can either:

If you are using Node.js, you don't need to do anything to enable compression. Node.js provides zlib as a standard module.

Get the web worker bundle:

See the API documentation for how to use web workers.

apply plugin: ''
android {
  compileSdkVersion 27
  defaultConfig {
    multiDexEnabled true
    applicationId ""
    minSdkVersion 19
    targetSdkVersion 27
    versionCode 1
    versionName "1.0"
  buildTypes {
    release {
      minifyEnabled false
      proguardFiles getDefaultProguardFile('proguard-android.txt'), ''
  compileOptions {
    coreLibraryDesugaringEnabled true
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
repositories {
    maven {
        url ""
dependencies {
  coreLibraryDesugaring ''
  implementation 'org.slf4j:slf4j-api:1.7.21'
  implementation 'com.pushtechnology.diffusion:diffusion-android-client:6.8.0'

Get the Java SDK using Maven:

Add the DiffusionData public repository to your pom.xml file


Declare the following dependency in your pom.xml file


Get the Java SDK using Gradle:

Add the DiffusionData public repository to your build.gradle file

repositories {
  maven {
    url ""

Declare the following dependency in your build.gradle file

compile 'com.pushtechnology.diffusion:diffusion-client:6.8.0'

Get the .NET SDK from NuGet:

dotnet add package Diffusion.Client

Get the C client libraries for Linux:

Get the C client libraries for macOS:

Get the C client libraries for Windows:

Get the Python SDK with pip:

$ pip install diffusion==6.8.0
Start publishing real-time data with Diffusion free!
Rethink Real Time with Diffusion, the only Intelligent Data Platform.