<div align="center">
# llm-schema
**For type-safe schema conversion between Rust types and LLM.**
[](https://crates.io/crates/llm-schema)
[](https://crates.io/crates/llm-schema)
[](LICENSE)
[](https://docs.rs/llm-schema)
</div>
***Note: This project is under active development and APIs may change.***
## Quick start
```rust
use llm_schema::LlmSchema;
#[derive(LlmSchema)]
struct Example {
name: String,
age: i32,
#[llmschem(require)]
email: String,
nickname: Option<String>,
}
fn main() {
let schema = Example::llm_schema();
println!("{}", serde_json::to_string_pretty(&schema).unwrap());
// {
// "properties": {
// "age": {
// "type": "number"
// },
// "email": {
// "type": "string"
// },
// "name": {
// "type": "string"
// },
// "nickname": {
// "type": "null"
// }
// },
// "required": [
// "email"
// ],
// "type": "object"
// }
}
```
## Star History
[](https://www.star-history.com/#zTgx/llm-schema&Date)
## License
This project is licensed under the MIT License - see the `LICENSE` file for details.