We just published the 2.6.0 release of Warp 10. Discover the Macro Value encoder and all the details in this post.
On Wednesday, May the 27th of 2020, nearly two months after the release of the 2.5.0, we published the 2.6.0 release of Warp 10. A lot of new features and functions as well as some optimizations and few bug fixes come with this new release.
Upgrading to 2.6.0
With the 2.6.0 release, we modified the bash script to start Warp 10 as well as the WarpConfig class it calls to get some configuration values. If you have already a pre-2.6.0 instance running, use this procedure to migrate to 2.6.0.
- Fetching data with boundaries larger than
max.encoder.sizenow returns the expected result.
- Same goes with non-0 boundaries in conjunction with
- Fetching without timespan and a Metaset now works as expected.
An incredible new feature of this new release 2.6.0 is the addition of Macro Value Encoder. It simply allows you to send a macro name and a value to the
/update endpoint of your Warp 10 instance, which will apply the macro to the value and store the result. In practice, you can use it to transform or encode your values in a specific way, for instance using Protocol Buffers or Arrow. More on that in an upcoming blog post.
You can now configure the Accelerator to use default strategies for reads, writes and deletes. In the in-memory configuration file, you can set
nopersist. You can, for instance, read by default in the cache only unless a call to
ACCEL.PERSIST is done before.
Store and Directory can be accessible in the UDP and TCP plugins scripts, like it is in the HTTP plugin scripts. If you want them to be accessible, don't forget to set
egress.clients.expose = true in your configuration file.
Since 2.1.0, it is possible to override the configuration defined in the configuration files by environment variables and system properties. This can now be disabled by the configuration keys
warp10.nosys. Likewise, when expanding variables, failures can be ignored with
New Docker image
As we noticed Warp 10 use on ARM devices is increasing, we now provide a multiarch Docker image supporting AMD64, ARM64 and ARMv7.
You can now deploy Warp 10 even quicker than before for your embedded devices or your DIY projects on Raspberry Pi for instance.
New and Updated Functions
If you need to compress lists of longs, you can now use the
VARINT-> functions. They make use of the varint encoding which can greatly reduce the number of bytes needed to represent such lists.
Most Math functions now work on lists. Unary functions can be applied to each element of the list:
Binary functions can be applied to each element of a list and a single value:
MULTPLYEXACT. Associative functions can also be applied to a single list:
For wrapping multi-value GTSs, you can now use
WRAPMV! which is the uncompressed version of
WRAPMV in the same way
[! is the uncompressed version of
[ in the GTS input format.
You can now apply
ASREGS directly on a macro, which is equivalent to
DUP VARS ASREGS.
Warp 10 now boots faster than before, thanks to an optimization where the JVM is only launched once to read the configuration files before running Warp 10.
List creation in WarpScript is now faster and less memory hungry by avoiding a needless copy.
The parsing of hexadecimal data on
/update should be faster thanks to the use of
charAt instead of
Stay close, we'll soon write a post about the Macro value encoder.
Warp 10 2.6.0
The Warp 10 MQTT plugin allows you to easily subscribe to TheThingNetwork LoraWan messages. Connecting IoT has never been so easy.
Using the WarpFleet Resolver you can expose your WarpScript macros, making them easily callable from any Warp 10 instance.