Skip to content

Releases: IBMStreams/streamsx.topology

com.ibm.streamsx.topology 1.5.2 EA1

20 Oct 13:41
Compare
Choose a tag to compare
Pre-release

Minor updates to 1.5.1

com.ibm.streamsx.topology 1.5.1 EA1

18 Oct 05:23
Compare
Choose a tag to compare
Pre-release

1.5.1 Early Access Release

Pre-release with new functionality, apis are subject to change before a full release is made with the new functionality.

Python Application API

  • Support for Python 2.7
  • Topology.source() supports passing an iterable, removing the need to declare a function.
  • Support for lambda expressions as functions for stream transformations
  • Support for invoking SPL operators

SPL Python Operators

  • New @spl decorators
    • @spl.map - Map SPL operator
    • @spl.for_each - Sink SPL operator
  • These new decorators support new features:
    • Stateful operators when decorating a callable class.
    • Stateless operator when decorating a function.
    • SPL operator parameters derived from parameters in the __init__ signature of a decorated callable class.
    • Passing SPL tuple attributes:
      • By name using a dictionary when the callable signature is **kwargs.
      • By position when the callable signature is *args.

com.ibm.streamsx.topology 1.4.3

15 Aug 18:38
Compare
Choose a tag to compare

Java, Scala & Python Application APIs for IBM Streams

com.ibm.streamsx.topology 1.4.3

com.ibm.streamsx.topology includes:

  • APIs to allow creation of IBM Streams applications in Python, Java or Scala.
  • Publish-Subscribe stream model to allow integration between IBM Streams applications implemented in different languages (SPL, Python, Java or Scala) using a micro-service approach.

Java/Scala Application APIs

Java API to allow creation of streaming applications for IBM Streams by Java and Scala developers.

The API is provided as as an SPL toolkit com.ibm.streamsx.topology containing the Java Application API in lib/com.ibm.streamsx.topology.jar.

Please see the Getting Started Guide for details on how to install and use the API, including the provided sample applications.

Python Application API

Python API to allow creation of streaming applications for IBM Streams by Python developers.

Please see the IBM Streams Python Support for details on how to install and use the API, including the provided sample applications.

Documentation

Documentation is included in the SPL toolkit at the following locations.

  • Java - com.ibm.streamsx.topology/doc/javadoc/index.html - Main documentation for the Java Application API.
  • Scala - com.ibm.streamsx.topology/doc/scaladoc/index.html - Additional information for developing in Scala with the Java Application API.
  • SPL - com.ibm.streamsx.topology/doc/spldoc/html/index.html - SPL operators and types to allow topic based publish-subscribe of streams between applications regardless of implementation language.
  • Python - com.ibm.streamsx.topology/doc/spldoc/html/index.html - Namespace com.ibm.streamsx.topology.python describes the Python Application API.

Beta Python Support 1.4.1

13 Jun 22:01
Compare
Choose a tag to compare
Pre-release

This is an beta release of the com.ibm.streamsx.topology SPL toolkit that adds:

  • Python Application API - allows an application to be built using Python in a similar approach to the Java Application API, but with Python so that streams are created and sinked using Python functions and tuples are Python objects.
  • Python functions as SPL operators - the ability to easily convert Python functions to SPL operators for IBM Streams.

See the SPLDOC for the com.ibm.streamsx.topology.python namespace for details, available online.

IBM Streams 4.0.1 or higher is supported.
Python 3.5 is supported.

This version also includes with the same functionality as the 1.3.0 release:

  • Java/Scala Application API
  • Topic publish-subscribe streaming model allowing microservice architecture for streaming applications including support across IBM Streams applications implemented in SPL, Python, Java and Scala.

Java Application API - 1.3.0

09 May 21:24
Compare
Choose a tag to compare

Java Application API for IBM Streams

1.3.0

Java API to allow creation of streaming applications for IBM Streams by Java and Scala developers.

Note: Requires IBM Streams 4.0.1 or later.

The API is provided as as an SPL toolkit com.ibm.streamsx.topology containing the Java Application API in lib/com.ibm.streamsx.topology.jar.

Please see the Getting Started Guide for details on how to install and use the API, including the provided sample applications.

Documentation

  • Java - com.ibm.streamsx.topology/doc/javadoc/index.html - Main documentation for the Java Application API.
  • Scala - com.ibm.streamsx.topology/doc/scaladoc/index.html - Additional information for developing in Scala with the Java Application API.
  • SPL - com.ibm.streamsx.topology/doc/spldoc/html/index.html - SPL operators and types to allow topic based publish-subscribe of streams between applications regardless of implementation language.

Changes from 1.1.6

Changes from 1.1.6

  • Support for topic wildcard filter for subscriptions. The scheme is identical to topic names and filters supported by MQTT.
    • + matches a single level topic
      • + matches x, y but not a/b/
      • a/b/+ matches a/b/x, ``a/b/ybut nota/b` or `a/b/c/d`
      • a/+b/c matches a/x/c, a/y/c but not a/b or a/b/c/d.
    • # matches parent topic and any number of sub-levels
      • # matches all topics
      • a/b/# matches a/b, a/b/x, a/b/y, a/b/x/y/z but not a/c
  • FilteredSubscribe SPL operator that subscribes to a topic with a filter. The filter is either executed remotely by the publisher to reduce network traffic or locally when the publisher does not allow filters.

Java Application API - 1.1.6

25 Apr 16:38
Compare
Choose a tag to compare

Java Application API for IBM Streams

1.1.6

Java API to allow creation of streaming applications for IBM Streams by Java and Scala developers.

The API is provided as as an SPL toolkit com.ibm.streamsx.topology containing the Java Application API in lib/com.ibm.streamsx.topology.jar.

Please see the Getting Started Guide for details on how to install and use the API, including the provided sample applications.

Documentation

  • Java - com.ibm.streamsx.topology/doc/javadoc/index.html - Main documentation for the Java Application API.
  • Scala - com.ibm.streamsx.topology/doc/scaladoc/index.html - Additional information for developing in Scala with the Java Application API.
  • SPL - com.ibm.streamsx.topology/doc/spldoc/html/index.html - SPL operators and types to allow topic based publish-subscribe of streams between applications regardless of implementation language.

Changes from 1.1.2

Changes from 1.1.2

  • Minimum IBM Streams version required changed to IBM Streams 4.0.1
    • Java libraries are now built with Java 8
  • Behavior defined for publish and subscribe model in a parallel region.
  • Filter supported adding for publish

Alpha Python Support 1.2.5

14 Apr 22:33
Compare
Choose a tag to compare
Pre-release

This is an alpha release of the com.ibm.streamsx.topology SPL toolkit that adds:

  • Python Application API - allows an application to be built using Python in a similar approach to the Java Application API, but with Python so that streams are created and sinked using Python functions and tuples are Python objects.
  • Python functions as SPL operators - the ability to easily convert Python functions to SPL operators for IBM Streams (4.0 or higher).

See the SPLDOC for the com.ibm.streamsx.topology.python namespace for details, available online.

Python 3.4 or later is supported.

Experimental Python Support 1.2.2

24 Nov 23:24
Compare
Choose a tag to compare
Pre-release

This is an experimental version of the com.ibm.streamsx.topology SPL toolkit that adds the ability to easily convert Python functions to SPL operators for IBM Streams (4.0 or higher).

In addition very early code is added that allows an application to be built using Python in a similar approach to the Java Application API, but with Python so that streams are created and sinked using Python functions and tuples are Python objects.

SPL operators that call a Python function are created by decorators provided by this toolkit.

bin/spl-python-extract.py is a Python script that creates SPL operators from Python functions contained in modules in a toolkit. The resulting operators embed the Python runtime to allow stream processing using Python.

For example an SPL operator to send an e-mail for each tuple using the local SMTP server.

import sys
import smtplib

# Import the SPL decorators
from streamsx.spl import spl

server = smtplib.SMTP('localhost')

def splNamespace():
    return "com.ibm.streamsx.topology.pysamples.mail"

# Decorate this function as a sink operator
# This means the operator will have a single
# input port and no output ports. The SPL tuple
# is passed in as described in spl_samples.py.
# The function must return None, typically by
# not having any return statement.
@spl.sink
def simplesendmail(from_addr, to_addrs, msg):
    "Send a simple email"
    server.sendmail(from_addr, to_addrs, msg)

See the SPLDOC for the com.ibm.streamsx.topology.python namespace for details, available online.

Python 3.4 or later is supported. If Python 2.6 or later is required please create an issue

Experimental Python Support

20 Oct 19:47
Compare
Choose a tag to compare
Pre-release

This is an experimental version of the com.ibm.streamsx.topology SPL toolkit that adds the ability to easily convert Python functions to SPL operators for IBM Streams (4.0 or higher).

SPL operators that call a Python function are created by decorators provided by this toolkit.

bin/spl-python-extract.py is a Python script that creates SPL operators from Python functions contained in modules in a toolkit. The resulting operators embed the Python runtime to allow stream processing using Python.

For example an SPL operator to send an e-mail for each tuple using the local SMTP server.

import sys
import smtplib

# Import the SPL decorators
from streamsx.spl import spl

server = smtplib.SMTP('localhost')

def splNamespace():
    return "com.ibm.streamsx.topology.pysamples.mail"

# Decorate this function as a sink operator
# This means the operator will have a single
# input port and no output ports. The SPL tuple
# is passed in as described in spl_samples.py.
# The function must return None, typically by
# not having any return statement.
@spl.sink
def simplesendmail(from_addr, to_addrs, msg):
    "Send a simple email"
    server.sendmail(from_addr, to_addrs, msg)

See the SPLDOC for the com.ibm.streamsx.topology.python namespace for details, available online.

Python 3.4 or later is supported. If Python 2.6 or later is required please create an issue

The Java/Scala support is at the 1.1.2 release level, the only additions to this experimental release is Python support.

Java Application API - 1.1.2

11 Oct 14:26
Compare
Choose a tag to compare

Java Application API for IBM Streams

1.1.2

Java API to allow creation of streaming applications for IBM Streams by Java and Scala developers.

The API is provided as as an SPL toolkit com.ibm.streamsx.topology containing the Java Application API in lib/com.ibm.streamsx.topology.jar.

Please see the Getting Started Guide for details on how to install and use the API, including the provided sample applications.

Documentation

  • Java - com.ibm.streamsx.topology/doc/javadoc/index.html - Main documentation for the Java Application API.
  • Scala - com.ibm.streamsx.topology/doc/scaladoc/index.html - Additional information for developing in Scala with the Java Application API.
  • SPL - com.ibm.streamsx.topology/doc/spldoc/html/index.html - SPL operators and types to allow topic based publish-subscribe of streams between applications regardless of implementation language.