streamparse 3.0.0.dev0
Pre-release
Pre-release
dan-blanchard
released this
12 Mar 02:12
·
274 commits
to main
since this release
This is the first developer preview release of streamparse 3.0. It has not been tested extensively in production yet, so we are looking for as much feedback as we can get from users who are willing to test it out.
You can install this release via pip with pip install --pre streamparse==3.0.0.dev0
. It will not automatically install because it's a pre-release.
⚠️ API Breaking Changes ⚠️
- Topologies are now specified via a Python Topology DSL instead of the Clojure Topology DSL. This means you can/must now write your topologies in Python! Components can still be written in any language supported by Storm, of course. (Issues #84 and #136, PR #199, #226)
- The deprecated
Spout.emit_many
method has been removed. (pystorm/pystorm@004dc27) - As a consequence of using the new Python Topology DSL, all Bolts and Spouts that emit anything are expected to have the
outputs
attribute declared. It must either be a list ofstr
orStream
objects, as described in the docs. - We temporarily removed the
sparse run
command, as we've removed all of our Clojure code, and this was the only thing that had to still be done in Clojure. (Watch issue #213 for future developments)
Features
- Added
sparse slot_usage
command that can show you how balanced your topologies are across nodes. This is something that isn't currently possible with the Storm UI on its own. (PR #218) - Can now specify
ssh_password
inconfig.json
if you don't have SSH keys setup. Storing your password in plaintext is not recommended, but nice to have for local VMs. (PR #224, thanks @motazreda) - Now fully Python 3 compatible (and tested on up to 3.5), because we rely on fabric3 instead of plain old fabric now. (4acfa2f)
- Now remove
_resources
directory after JAR has been created.
Other Changes
- Now rely on pystorm package for handling Multi-Lang IPC between Storm and Python. This library is essentially the same as our old
storm
subpackage with a few enhancements (e.g., the ability to use MessagePack instead of JSON to serialize messages). (Issue #174, Commits aaeb3e9 and 1347ded) - All Bolt, Spout, and Topology-related classes are all available directly at the
streamparse
package level (i.e., you can just dofrom streamparse import Bolt
now) (Commit b9bf4ae). sparse kill
now will kill inactive topologies. (Issue #156)- All examples now use the Python DSL
- The Kafka-JVM example has been cleaned up a bit, so now you can click on Storm UI log links and they'll work.