Using the API
The Matchy API lets you build and query databases programmatically from your application code. This is perfect for:
- Application development (servers, services, tools)
- Embedded systems and constrained environments
- Language integration (Rust, C/C++, Python, etc.)
- Custom data processing pipelines
What You'll Learn
- Installing as a Library - Add Matchy to your project
- First Database with Rust - Build and query using Rust
- First Database with C - Build and query using C/C++
Example (Rust)
#![allow(unused)] fn main() { use matchy::{Database, DatabaseBuilder, MatchMode, DataValue}; use std::collections::HashMap; // Build database let mut builder = DatabaseBuilder::new(MatchMode::CaseInsensitive); let mut data = HashMap::new(); data.insert("threat".to_string(), DataValue::String("high".to_string())); builder.add_entry("192.0.2.1", data)?; let db_bytes = builder.build()?; std::fs::write("threats.mxy", &db_bytes)?; // Query database let db = Database::open("threats.mxy")?; if let Some(result) = db.lookup("192.0.2.1")? { println!("Found: {:?}", result); } }
Example (C)
#include "matchy.h"
// Build database
matchy_builder_t *builder = matchy_builder_new();
matchy_builder_add(builder, "192.0.2.1", "{\"threat\": \"high\"}");
matchy_builder_save(builder, "threats.mxy");
matchy_builder_free(builder);
// Query database
matchy_t *db = matchy_open("threats.mxy");
matchy_result_t result = matchy_query(db, "192.0.2.1");
if (result.found) {
char *json = matchy_result_to_json(&result);
printf("Found: %s\n", json);
matchy_free_string(json);
matchy_free_result(&result);
}
matchy_close(db);
Going further
After completing this section, check out:
- Matchy Guide - Deeper dive into concepts
- Rust API Reference - Complete Rust API docs
- C API Reference - Complete C API docs