Releases: IBMStreams/streamsx.topology
com.ibm.streamsx.topology 1.5.2 EA1
Minor updates to 1.5.1
com.ibm.streamsx.topology 1.5.1 EA1
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
.
- By name using a dictionary when the callable signature is
com.ibm.streamsx.topology 1.4.3
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
- Namespacecom.ibm.streamsx.topology.python
describes the Python Application API.
Beta Python Support 1.4.1
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
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
- Support for topic wildcard filter for subscriptions. The scheme is identical to topic names and filters supported by MQTT.
+
matches a single level topic+
matchesx
,y
but nota/b/
a/b/+
matchesa/b/x
, ``a/b/ybut not
a/b` or `a/b/c/d`a/+b/c
matchesa/x/c
,a/y/c
but nota/b
ora/b/c/d
.
#
matches parent topic and any number of sub-levels#
matches all topicsa/b/#
matchesa/b
,a/b/x
,a/b/y
,a/b/x/y/z
but nota/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
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
- 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
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
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
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
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.