16 releases
0.3.0 | Apr 3, 2022 |
---|---|
0.2.12 | Sep 28, 2021 |
0.2.11 | Aug 21, 2021 |
0.2.10 | Jul 16, 2021 |
0.2.0 | Mar 21, 2021 |
#850 in Database interfaces
99 downloads per month
Used in 3 crates
175KB
4.5K
SLoC
mlmd
A Rust implementation of ml-metadata.
This crate supports the schema version 8 used in ml-metadata-v1.7.0 or later.
Examples
use mlmd::MetadataStore;
use mlmd::metadata::EventType;
use tempfile::NamedTempFile;
#[tokio::main]
async fn main() -> anyhow::Result<()> {
// Creates metadata store.
let db_file = NamedTempFile::new()?;
let sqlite_uri = format!("sqlite://{}", db_file.path().to_str().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
andoutput_type
fields ofExecution
The following features are not planned to be supported:
- gRPC server
- Database schema migration
ml-metadata
References
Dependencies
~33–48MB
~858K SLoC