ice-rs

The goal of this project is to support Rust in ZeroC Ice. Currently just client features and a small subset of ZeroC Ice features are implemented.

Quick Start

This quick start guide will cover a client for the ZeroC Ice Minimal Sample. Create a binary application with cargo new minimal-client and add ice-rs to your [build-dependencies]and [dependencies]. Now add a build.rs file with the following content:

```Rust use ice_rs::slice::parser; use std::path::Path;

fn main() -> Result<(), Box> { println!("cargo:rerun-if-changed=build.rs"); let icefiles = vec![ String::from("") ]; let rootmodule = parser::parseicefiles(&input, "")?; root_module.generate(Path::new("./src/gen")) } ```

Now add the following to you main.rs: ```Rust use icers::communicator::Communicator; use icers::iceobject::IceObject;

mod gen; use crate::gen::demo::{Hello, HelloPrx};

fn main() -> Result<(), Box> { let comm = Communicator{}; let proxy = comm.stringtoproxy("hello:default -h localhost -p 10000")?; let mut helloprx = HelloPrx::checkedcast(proxy)?;

hello_prx.say_hello()

} ```

Status

The status can be seen in the number of supported ZeroC Ice Demos.

Roadmap

The main goal is to support all ZeroC Ice Demos.