mlmd

mlmd Documentation Actions Status Coverage Status License: MIT

A Rust implementation of [ml-metadata].

This crate supports the schema version 6 used in ml-metadata-v0.25.0 or later.

Examples

```rust use mlmd::MetadataStore; use mlmd::metadata::EventType; use tempfile::NamedTempFile;

[async_std::main]

async fn main() -> anyhow::Result<()> { // Creates metadata store. let dbfile = NamedTempFile::new()?; let sqliteuri = format!("sqlite://{}", dbfile.path().tostr().unwrap()); let mut store = MetadataStore::connect(&sqlite_uri).await?;

// Creates an artifact.
let artifact_type_id = store.put_artifact_type("DataSet").execute().await?;
let artifact_id = store.post_artifact(artifact_type_id).uri("/foo/bar").execute().await?;

// Creates an execution.
let execution_type_id = store.put_execution_type("Training").execute().await?;
let execution_id = store.post_execution(execution_type_id).execute().await?;

// Links the above execution with the artifact.
store.put_event(execution_id, artifact_id).ty(EventType::Input).execute().await?;

// Gets executions.
let executions = store.get_executions().execute().await?;
assert_eq!(executions.len(), 1);
assert_eq!(executions[0].id, execution_id);

Ok(())

} ```

Limitations

The following features are not supported yet: - gRPC client - input_type and output_type fields of Execution

The following features are not planned to be supported: - gRPC server - Database schema migration

ml-metadata References