Skip to content

Commit

Permalink
v0.4.0-alpha.1: Port to async & add bigml-parallel tool
Browse files Browse the repository at this point in the history
This version of the Rust `bigml` client now uses nightly Rust (and tokio
1.x) to provide async APIs. This breaks BigML source upload abilities
because BigML doesn't yet support `Transfer-Encoding: chunked` without
`Content-Length:`.

This release also includes a new `bigml-parallel` CLI tool that can be
used to execute a WhizzML script in parallel over multiple sources or
datasets, outputting the BigML execution JSON returned by each run. The
degree of parallelism is controllable, and the input resource IDs can be
streamed on standard input.
  • Loading branch information
emk committed Sep 6, 2019
1 parent d96d375 commit 1f01f31
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 2 deletions.
2 changes: 1 addition & 1 deletion bigml-parallel/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "bigml-parallel"
version = "0.1.0"
version = "0.4.0-alpha.1"
authors = ["Eric Kidd <[email protected]>"]
edition = "2018"

Expand Down
2 changes: 1 addition & 1 deletion bigml/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ edition = "2018"
env_logger = "0.6"

[dependencies]
bigml_derive = { version = "0.2", path = "../bigml_derive" }
bigml_derive = { version = "0.2.1", path = "../bigml_derive" }
bytes = "0.4.12"
chrono = { version = "0.4", features = ["serde"] }
failure = "0.1.1"
Expand Down
17 changes: 17 additions & 0 deletions bigml/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# A unofficial, incomplete `bigml` client for Rust

[![Documentation](https://img.shields.io/badge/documentation-docs.rs-yellow.svg)](https://docs.rs/bigml/)

An interface to the [BigML][] machine learning API, written in Rust. We use this at Faraday, so it's pretty reliable for what it does. But it omits many features that we don't need to access from Rust. In particular, we focus first on supporting WhizzML scripts, and many other parts of the API are much less complete.

What works:

- Fetching information about many different kinds of resources.
- Creating a few kinds of resources.
- Updating selected properties of a few kinds of resources.
- Uploading sources that are small enough to fit in memory.
- Executing scripts and getting the output values.

It's pretty easy to add new types and fields. See `src/resources` for existing examples. We will happily accept PRs adding new resource types!

[BigML]: https://bigml.com/

0 comments on commit 1f01f31

Please sign in to comment.