Releases: elixir-explorer/explorer
v0.5.1
What's Changed
- Add
clone_inner()
to Ex structs by @philss in #473 - Add boolean type to
Series.in/2
by @miXwui in #475 - Add
filter_with/2
for Polars LazyFrame backend by @philss in #476 - Add binary dtype to Series.in/2 by @Jhonatannunessilva in #477
- Add Series.in/2 tests for boolean series by @miXwui in #478
- Add LazyFrame implementation for
arrange_with/2
,distinct/3
,mutate_with/2
andsummarise_with/2
by @philss in #479 - Add
Series.day_of_week/1
by @sasikumar87 in #480 - Allow Series.fill_missing/2 to receive infinity and neg_infinity values by @Jhonatannunessilva in #484
- Simplify release workflow with a new action by @philss in #485
- Change GitHub Action that installs Rust by @philss in #486
- Allow Series.fill_missing/2 to receive date and datetime values by @Jhonatannunessilva in #483
- Support
time
dtype by @sasikumar87 in #487 - Add some LazyFrame functions - part III by @philss in #488
- Allow Series.fill_missing/2 to receive binary values by @Jhonatannunessilva in #489
- Simplify
df_describe
withas_deref()
by @philss in #490 - Add LazyFrame version of "join" by @philss in #491
- Add LazyFrame concat of rows and columns by @philss in #492
- Add LazyFrame version of
to_parquet/3
by @philss in #496 - Raise for unavailable LazyFrame functions explicitly by @philss in #497
- Allow Explorer.PolarsBackend.Series.pow/2 on (series, series) by @nallwhy in #440
- Fix pow of (series, series) when there is nil by @philss in #500
- Allow Series.from_list/2 to receive nan, infinity and neg_infinity values by @Jhonatannunessilva in #495
- Implement the Deref trait for our Ex* structs in order to abstract usage by @philss in #501
- fixed typo and clarified sentence for macro note by @a-alhusaini in #505
- Add
Series.to_date/1
andSeries.to_time/1
for datetime series by @sasikumar87 in #502 - Bump nightly version in order to fix the build by @philss in #509
- Prepare changelog for v0.5.1 by @philss in #508
New Contributors
- @a-alhusaini made their first contribution in #505
Full Changelog: v0.5.0...v0.5.1
Official Changelog: https://hexdocs.pm/explorer/changelog.html#v0-5-1-2023-02-17
Checksums
Below you can find the checksum (SHA256) of each precompiled artifact.
c60a6b4188ec55748cf04b08c930813c1f333f026b677ba399f9cc4cc382c9c7 explorer-v0.5.1-nif-2.15-x86_64-pc-windows-gnu.dll.tar.gz
9ca3ceda6b17dc8b8504d12f4c3ae5524821c6563dd719a10c3b0a7c40c8917c explorer-v0.5.1-nif-2.15-x86_64-pc-windows-msvc.dll.tar.gz
3b1700ee5905db2f7d11839cf1ca76945617b82463733c596a8c807569d0a2dc explorer-v0.5.1-nif-2.16-x86_64-pc-windows-gnu.dll.tar.gz
43c69c524560cf1383fe0355a79e586fb8e1b99918fa195ffcd0c42bd432b0a6 explorer-v0.5.1-nif-2.16-x86_64-pc-windows-msvc.dll.tar.gz
0021eb30bf13288bfd1fe7c30b8ac2f634c6db5f7aeccdea5b2ea9be7146eaec libexplorer-v0.5.1-nif-2.15-aarch64-apple-darwin.so.tar.gz
247459bb0f3962bdbd2ffa56638e471cc5800ed59fe496e1917635a87dac23d6 libexplorer-v0.5.1-nif-2.15-aarch64-unknown-linux-gnu.so.tar.gz
e821490e99e076b9a2ff8f44dab39fd60e8170d82c90ddbe065df6ac611f638e libexplorer-v0.5.1-nif-2.15-aarch64-unknown-linux-musl.so.tar.gz
aaa71b580643e46b6c04b348f2c96c5dfb326f1d9354f2d605acf2a2241d4259 libexplorer-v0.5.1-nif-2.15-arm-unknown-linux-gnueabihf.so.tar.gz
14471b81819701927bcdfde635c1a345c29dd0e9b5ef8a27b22aac0b133326a9 libexplorer-v0.5.1-nif-2.15-riscv64gc-unknown-linux-gnu.so.tar.gz
2461d1608c84791721dbfae199440965e75e2c8954ee36a7b19f637a7f6bc0a3 libexplorer-v0.5.1-nif-2.15-x86_64-apple-darwin.so.tar.gz
d2bd055a08c9e8df7a7737af3b22d6a2b75a4d7e29f5984083a4931555653758 libexplorer-v0.5.1-nif-2.15-x86_64-unknown-linux-gnu.so.tar.gz
e43fae0950f7f5fee5d4dd7dffb69abb3c971f0bd2a2d5eceed686113615b8fc libexplorer-v0.5.1-nif-2.15-x86_64-unknown-linux-musl.so.tar.gz
bb6dcd1483b95215379e38c0f7427f122229454ea95ca2ab19ec6cf5335c590d libexplorer-v0.5.1-nif-2.16-aarch64-apple-darwin.so.tar.gz
0d5082f8955f51b912c25b6581afc80cebc0f5c4251480b239c2a3ee89ac537f libexplorer-v0.5.1-nif-2.16-aarch64-unknown-linux-gnu.so.tar.gz
69dd4f631bb5ff7ae32ca80d572a368fdbacce94be3792348c145bcd1276fb9d libexplorer-v0.5.1-nif-2.16-aarch64-unknown-linux-musl.so.tar.gz
8aa8f85f1e1e9bf5aa51910e7e809a384732d0e783a081b4db8d2b3503890e16 libexplorer-v0.5.1-nif-2.16-arm-unknown-linux-gnueabihf.so.tar.gz
d1f580b23fc6b6ea955204713f2193715165caf7dd04ac9a27e01ec29ce0d303 libexplorer-v0.5.1-nif-2.16-riscv64gc-unknown-linux-gnu.so.tar.gz
0a599d6f927b8e3332f1bcae38cc278c6eda1ec256e8d7e8d76c7d66e8e2337e libexplorer-v0.5.1-nif-2.16-x86_64-apple-darwin.so.tar.gz
9fbe61d2c63e85ccb3a2a1802bf750ded1a9eb01360cab9fab745d382f8bcf5f libexplorer-v0.5.1-nif-2.16-x86_64-unknown-linux-gnu.so.tar.gz
ebcfb66d56535b29d596c51451f1d89d34ebba1f8f70dbebe60887643afec8e3 libexplorer-v0.5.1-nif-2.16-x86_64-unknown-linux-musl.so.tar.gz
v0.5.0
Added
-
Add
DataFrame.describe/2
to gather some statistics from a dataframe. -
Add
Series.nil_count/1
to count nil values. -
Add
Series.in/2
to check if a given value is inside a series. -
Add
Series
float predicates:is_finite/1
,is_infinite/1
andis_nan/1
. -
Add
Series
string functions:contains/2
,trim/1
,trim_leading/1
,trim_trailing/1
,
upcase/1
anddowncase/1
. -
Enable slicing of lazy frames (
LazyFrame
). -
Add IO operations "from/load" to the lazy frame implementation.
-
Add support for the
:lazy
option in theDataFrame.new/2
function. -
Add
Series
float rounding methods:round/2
,floor/1
andceil/1
. -
Add support for precompiling to Linux running on RISCV CPUs.
-
Add support for precompiling to Linux - with musl - running on AARCH64 computers.
-
Allow
DataFrame.new/1
to receive the:dtypes
option. -
Accept
:nan
as an option forSeries.fill_missing/2
with float series. -
Add basic support for the categorical dtype - the
:category
dtype. -
Add
Series.categories/1
to return categories from a categorical series. -
Add
Series.categorise/2
to categorise a series of integers using predefined categories. -
Add
Series.replace/2
to replace the contents of a series. -
Support selecting columns with unusual names (like with spaces) inside
Explorer.Query
withcol/1
.The usage is like this:
Explorer.DataFrame.filter(df, col("my col") > 42)
Fixed
- Fix
DataFrame.mutate/2
using a boolean scalar value. - Stop leaking
UInt32
series to Elixir. - Cast numeric columns to our supported dtypes after IO read.
This fix is only applied for the eager implementation for now.
Changed
- Rename
Series.bintype/1
toSeries.iotype/1
.
Pull requests made for this release
- Add DF describe by @cristineguadelupe in #444
- Fix mutate using a boolean scalar value by @miXwui in #445
- Add s_nil_count by @cristineguadelupe in #446
- Adds
Series.in/2
function by @kimjoaoun in #420 - Add Series float predicates: is_finite/1, is_infinite/1, is_nan/1 by @sasikumar87 in #448
- Add Series string functions by @cigrainger in #449
- Enables the slicing of LazyFrames by @kimjoaoun in #450
- Add IO operations "from/load" to the LazyFrame implementation by @philss in #451
- Add Series float rounding methods: round/2, floor/1 and ceil/1 by @sasikumar87 in #455
- Percentiles for describe by @cristineguadelupe in #454
- Add support for RISCV and Linux on M1/2 with musl by @philss in #456
- Update polars to v0.26.1 by @philss in #459
- Allow DataFrame.new/1 to receive the dtypes option by @Jhonatannunessilva in #460
- Add basic support for categorical dtype by @philss in #464
- Add Series.categories/1 by @philss in #465
- Add
Series.categorise/2
by @philss in #466 - Normalize numeric dtypes when loading/reading from IO by @philss in #470
- Prepare release v0.5.0 by @philss in #469
New Contributors
- @cristineguadelupe made their first contribution in #444
- @miXwui made their first contribution in #445
- @Jhonatannunessilva made their first contribution in #460
The official Changelog: https://github.com/elixir-nx/explorer/blob/main/CHANGELOG.md#v050---2023-01-12
Full diff of this version: v0.4.0...v0.5.0
Checksums
Below are the checksums of the precompiled files.
53ae33bcf9f56416706bcd20e1b995c86e03ff4e3332668121ededfc7571f1fb explorer-v0.5.0-nif-2.15-x86_64-pc-windows-gnu.dll.tar.gz
af21cbd83a4f4c6a66f3f575803947f8c4c030800d2e50640c306efec8ba3276 explorer-v0.5.0-nif-2.15-x86_64-pc-windows-msvc.dll.tar.gz
88a045e498d8bc92e72a67a212609cdf9c19e30f508632dcf1c1aaa11654eb49 explorer-v0.5.0-nif-2.16-x86_64-pc-windows-gnu.dll.tar.gz
340fc42a6f82783e6691fe2d65df71634453c9b0c18df603e4e0bff3d1509bbe explorer-v0.5.0-nif-2.16-x86_64-pc-windows-msvc.dll.tar.gz
2b3036a5911381090df6ff9ee850a8fb7bad67a0f45ffe534b40f83a24b54fb6 libexplorer-v0.5.0-nif-2.15-aarch64-apple-darwin.so.tar.gz
0c2505a8162fab9f966d319c577778aa8243c9c2c4aafd6139b5fb05dfa040b7 libexplorer-v0.5.0-nif-2.15-aarch64-unknown-linux-gnu.so.tar.gz
707b1b8417463ef21fca8e68047c0fcca14188bdc2841222ce4de57d0d10a0b9 libexplorer-v0.5.0-nif-2.15-aarch64-unknown-linux-musl.so.tar.gz
40cd4a3450755723fdec39c2c2a974de5e3003e67b612e30a524611da3b4b6a0 libexplorer-v0.5.0-nif-2.15-arm-unknown-linux-gnueabihf.so.tar.gz
5e176c2b7bbbbef9f7baf07a507cf72638b60f36629543e3c8ba169a90bfc484 libexplorer-v0.5.0-nif-2.15-riscv64gc-unknown-linux-gnu.so.tar.gz
81d542d98c78dcc49a09ef56457b143e345c24a4a04ce9c718a026f6754a27aa libexplorer-v0.5.0-nif-2.15-x86_64-apple-darwin.so.tar.gz
1923583ef16fd2c7575b1149d76fa88a95ad8a2395a6aabd6b8aa04f0f81507b libexplorer-v0.5.0-nif-2.15-x86_64-unknown-linux-gnu.so.tar.gz
43fd64d5c41e3255da0aec2b5516be3739574b582cc8794e0aeb73b9a3d80cc6 libexplorer-v0.5.0-nif-2.15-x86_64-unknown-linux-musl.so.tar.gz
c966b3db56b9484af6e4d8ab53da720d7022c37246e6363d7042d6629a37074d libexplorer-v0.5.0-nif-2.16-aarch64-apple-darwin.so.tar.gz
c198f27bb94c0e50fd7012283538756d25025d8e52560931a8d198a551b5c594 libexplorer-v0.5.0-nif-2.16-aarch64-unknown-linux-gnu.so.tar.gz
8a0fcff821590a872480b634421b2fab9673a6649a2943b47c7f4bc83111e683 libexplorer-v0.5.0-nif-2.16-aarch64-unknown-linux-musl.so.tar.gz
f23a0df9e39b7e26d5f84035019ee81e3f43e8556707937e14bfc12fcfa841e5 libexplorer-v0.5.0-nif-2.16-arm-unknown-linux-gnueabihf.so.tar.gz
4b36fc0b4d0b83fd8784b71f45ddb720d5319b3b1d0548481f09541dca4b2bc3 libexplorer-v0.5.0-nif-2.16-riscv64gc-unknown-linux-gnu.so.tar.gz
af5220707b55c73e5eecf9839173822dc6d3215e3cc09e92782363771a42e59e libexplorer-v0.5.0-nif-2.16-x86_64-apple-darwin.so.tar.gz
197eaea18bd4e05e2cb86ceee607119ffccb671816b28d5fc060e568303a0b7e libexplorer-v0.5.0-nif-2.16-x86_64-unknown-linux-gnu.so.tar.gz
10d244fa00c6abe000936a8649e87c6e71690e33267407bf5d945084c027ba0e libexplorer-v0.5.0-nif-2.16-x86_64-unknown-linux-musl.so.tar.gz
v0.4.0
This is an exciting release with a lot of features, a bunch of changes and some fixes.
Happy Hacking!
Added
-
Add
Series.quotient/2
andSeries.remainder/2
to work with integer division. -
Add
Series.bintype/1
to return the underlying representation type. -
Allow series on both sides of binary operations, like:
add(series, 1)
andadd(1, series)
. -
Allow comparison, concat and coalesce operations on "(series, lazy series)".
-
Add lazy version of
Series.sample/3
andSeries.size/1
. -
Add support for Arrow IPC Stream files.
-
Add
Explorer.Query
and the macros that allow a simplified query API.
This is a huge improvement to some of the main functions, and allow refering to
columns as they were variables.Before this change we would need to write a filter like this:
Explorer.DataFrame.filter_with(df, &Explorer.Series.greater(&1["col1"], 42))
But now it's also possible to write this operation like this:
Explorer.DataFrame.filter(df, col1 > 42)
This operation is going to use
filter_with/2
underneath, which means that
is going to use lazy series and compute the results at once.
Notice that is mandatory to "require" the DataFrame module, since these operations
are implemented as macros.The following new macros were added:
filter/2
mutate/2
summarise/2
arrange/2
They substitute older versions that did not accept the new query syntax.
-
Add
DataFrame.put/3
to enable adding or replacing columns in a eager manner.
This works similar to the previous version ofmutate/2
. -
Add
Series.select/3
operation that enables selecting a value
from two series based on a predicate. -
Add "dump" and "load" functions to IO operations. They are useful to load
or dump dataframes from/to memory. -
Add
Series.to_iovec/2
andSeries.to_binary/1
. They return the underlying
representation of series as binary. The first one returns a list of binaries,
possibly with one element if the series is contiguous in memory. The second one
returns a single binary representing the series. -
Add
Series.shift/2
that shifts the series by an offset with nil values. -
Rename
Series.fetch!/2
andSeries.take_every/2
toSeries.at/2
andSeries.at_every/2
. -
Add
DataFrame.discard/2
to drop columns. This is the opposite ofselect/2
. -
Implement
Nx.LazyContainer
forExplorer.DataFrame
andExplorer.Series
so data can be passed into Nx. -
Add
Series.not/1
that negates values in a boolean series. -
Add the
:binary
dtype for Series. This enables the usage of arbitrary binaries.
Changed
- Change DataFrame's
to_*
functions to return only:ok
. - Change series inspect to resamble the dataframe inspect with the backend name.
- Rename
Series.var/1
toSeries.variance/1
- Rename
Series.std/1
toSeries.standard_deviation/1
- Rename
Series.count/2
toSeries.frequencies/1
and add a newSeries.count/1
that returns the size of an "eager" series, or the count of members in a group
for a lazy series.
In case there is no groups, it calculates the size of the dataframe. - Change the option to control direction in
Series.sort/2
andSeries.argsort/2
.
Instead of a boolean, now we have a new option called:direction
that accepts
:asc
or:desc
.
Fixed
- Fix the following DataFrame functions to work with groups:
filter_with/2
head/2
tail/2
slice/2
slice/3
pivot_longer/3
pivot_wider/4
concat_rows/1
concat_columns/1
- Improve the documentation of functions that behave differently with groups.
- Fix
arrange_with/2
to use "group by" stable, making results more predictable. - Add
nil
as a possible return value of aggregations. - Fix the behaviour of
Series.sort/2
andSeries.argsort/2
to add nils at the
front when direction is descending, or at the back when the direction is ascending.
This also adds an option to control this behaviour.
Removed
- Remove support for
NDJSON
read and write for ARM 32 bits targets.
This is due to a limitation of a dependency of Polars.
New Contributors
- @Ian-GL made their first contribution in #352
- @pgeraghty made their first contribution in #361
- @thbar made their first contribution in #362
- @nallwhy made their first contribution in #366
- @xaviRodri made their first contribution in #365
- @tmr08c made their first contribution in #388
- @linusdm made their first contribution in #412
- @thmsmlr made their first contribution in #418
- @sasikumar87 made their first contribution in #433
We also had @joshuataylor and @Benjamin-Philip contributing to this release.
Full Changelog: v0.3.1...v0.4.0
Official Changelog: https://hexdocs.pm/explorer/changelog.html
Checksums
Above is the checksum of the precompiled NIFs.
5c806f61d76e161b03372d7607704a98a50e0a0687c2d763041edcc265a7e1ed explorer-v0.4.0-nif-2.15-x86_64-pc-windows-gnu.dll.tar.gz
017304769d8ad46cdfa44520ceba6431b7f5c8934c8dd62613317126bfaf4447 explorer-v0.4.0-nif-2.15-x86_64-pc-windows-msvc.dll.tar.gz
97680f8a446c2de04add8a66d63db44085d4b7008fb135fc8a3c62df3bdb6857 explorer-v0.4.0-nif-2.16-x86_64-pc-windows-gnu.dll.tar.gz
b4339bad6faabad736a698fc989cf0f24640ea98f46d4ec3a79330b7ef273673 explorer-v0.4.0-nif-2.16-x86_64-pc-windows-msvc.dll.tar.gz
01678187108b7dc472748e9163bfbad15f74aeca5da96c285ad22ce1f4398994 libexplorer-v0.4.0-nif-2.15-aarch64-apple-darwin.so.tar.gz
22b5d6ac3a0123f0b3d4c84129d2730c583d59dfa846b77524d13ee34baceb96 libexplorer-v0.4.0-nif-2.15-aarch64-unknown-linux-gnu.so.tar.gz
21d9c5c81a86aa23d6d0e630307bf86732e0e7f31b35d2aad093248ec747ba65 libexplorer-v0.4.0-nif-2.15-arm-unknown-linux-gnueabihf.so.tar.gz
aed562d906f16cecca3fc12e77a8a03825f0aa52ef3421a8db0df9f258fd7e29 libexplorer-v0.4.0-nif-2.15-x86_64-apple-darwin.so.tar.gz
60f66e0a3ec24b323b7996b5c30d0b9fbb714674fa0fa2dcbe48b1b7af9e85f4 libexplorer-v0.4.0-nif-2.15-x86_64-unknown-linux-gnu.so.tar.gz
24387916a67f93d2a4dd2e2b595451ad3ed052dddf91956bd9dc9ec1a39cb32c libexplorer-v0.4.0-nif-2.15-x86_64-unknown-linux-musl.so.tar.gz
3fabdc92ba66c33f0a6b220a06dccfa3738d231d90e1824c47c0a4a838d2bee8 libexplorer-v0.4.0-nif-2.16-aarch64-apple-darwin.so.tar.gz
9213e107fb29a416c9db40040b4b657199bd5e9e95990e1b6fcf6e090a006810 libexplorer-v0.4.0-nif-2.16-aarch64-unknown-linux-gnu.so.tar.gz
025fb32c9b337d3bcc50be321c9a26bc6ea7ecbef0813df7729a53e6826c0fe3 libexplorer-v0.4.0-nif-2.16-arm-unknown-linux-gnueabihf.so.tar.gz
7ad59e6e041267a78d0671ef11b60e8edca66ae2cd58e052731ab38f3c1af8d2 libexplorer-v0.4.0-nif-2.16-x86_64-apple-darwin.so.tar.gz
0bdddb296b7be4957fe40cdcbfc1fa92802fab1fed0d6fd40122acbcc90f6b61 libexplorer-v0.4.0-nif-2.16-x86_64-unknown-linux-gnu.so.tar.gz
de8dd8313d7fff2fbd8d70bb26f163b60af9ac41bc26f799ca94aae78570d45f libexplorer-v0.4.0-nif-2.16-x86_64-unknown-linux-musl.so.tar.gz
v0.3.1
Fixed
- Define
multiply
inside*_with
operations. - Fix column types in several operations, such as
n_distinct
.
v0.3.0
Added
-
Add
DataFrame.concat_columns/1
andDataFrame.concat_columns/2
for horizontally stacking
dataframes. -
Add compression as an option to write parquet files.
-
Add count metadata to
DataFrame
table reader. -
Add
DataFrame.filter_with/2
,DataFrame.summarise_with/2
,DataFrame.mutate_with/2
and
DataFrame.arrange_with/2
. They all accept aDataFrame
and a function, and they all work with
a new concept called "lazy series".Lazy Series is an opaque representation of a series that can be
used to perform complex operations without pulling data from the series. This is faster than
using masks. There is no big difference from the API perspective compared to the functions that were
accepting callbacks before (eg.filter/2
and the newfilter_with/2
), with the exception being
DataFrame.summarise_with/2
that now accepts a lot more operations.
Changed
- Bump version requirement of the
table
dependency to~> 0.1.2
, and raise for non-tabular values. - Normalize how columns are handled. This changes some functions to accept one column or
a list of columns, ranges, indexes and callbacks selecting columns. - Rename
DataFrame.filter/2
toDataFrame.mask/2
. - Rename
Series.filter/2
toSeries.mask/2
. - Rename
take/2
from bothSeries
andDataFrame
toslice/2
.slice/2
now they accept ranges as well. - Raise an error if
DataFrame.pivot_wider/4
has float columns as IDs. This is because we can´t
properly compare floats. - Change
DataFrame.distinct/2
to accept columns as argument instead of receiving it as option.
Fixed
- Ensure that we can compare boolean series in functions like
Series.equal/2
. - Fix rename of columns after summarise.
- Fix inspect of float series containing
NaN
orInfinity
values. They are represented as atoms.
Deprecated
- Deprecate
DataFrame.filter/2
with a callback in favor ofDataFrame.filter_with/2
.
v0.2.0
Added
- Consistently support ranges throughout the columns API
- Support negative indexes throughout the columns API
- Integrate with the
table
package - Add
Series.to_enum/1
for lazily traversing the series - Add
Series.coalesce/1
andSeries.coalesce/2
for finding the first non-null value in a list of series
Changed
Series.length/1
is nowSeries.size/1
in keeping with Elixir idiomsNx
is now an optional dependency- Minimum Elixir version is now 1.13
DataFrame.to_map/2
is nowDataFrame.to_columns/2
andDataFrame.to_series/2
Rustler
is now an optional dependencyread_
andwrite_
IO functions are nowfrom_
andto_
to_binary
is nowdump_csv
- Now uses
polars
's "simd" feature - Now uses
polars
's "performant" feature Explorer.default_backend/0
is nowExplorer.Backend.get/0
Explorer.default_backend/1
is nowExplorer.Backend.put/1
Series.cum_*
functions are nowSeries.cumulative_*
to mirrorNx
Series.rolling_*
functions are nowSeries.window_*
to mirrorNx
reverse?
is now an option instead of an argument inSeries.cumulative_*
functionsDataFrame.from_columns/2
andDataFrame.from_rows/2
is nowDataFrame.new/2
- Rename "col" to "column" throughout the API
- Remove "with_" prefix in options throughout the API
DataFrame.table/2
accepts options with:limit
instead of single integerrename/2
no longer accepts a function, userename_with/2
insteadrename_with/3
now expects the function as the last argument
Fixed
- Explorer now works on Linux with musl
v0.1.1
v0.1.0
Initial release.