datafusion-distributed 2.0.0

Framework for enhancing Apache DataFusion with distributed capabilities
Documentation
use datafusion_distributed::Worker;
use std::error::Error;
use std::net::{IpAddr, Ipv4Addr, SocketAddr};
use structopt::StructOpt;
use tonic::transport::Server;

#[derive(StructOpt)]
#[structopt(
    name = "localhost_versioned_worker",
    about = "A localhost DataFusion worker with versioning"
)]
struct Args {
    #[structopt(default_value = "8080")]
    port: u16,

    /// Optional version string.
    #[structopt(long)]
    version: Option<String>,
}

#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
    let args = Args::from_args();

    let mut worker = Worker::default();
    if let Some(version) = args.version {
        worker = worker.with_version(version);
    }

    Server::builder()
        .add_service(worker.into_worker_server())
        .serve(SocketAddr::new(IpAddr::V4(Ipv4Addr::LOCALHOST), args.port))
        .await?;

    Ok(())
}