# rustylms - A LM-Studio API wrapper written in Rust
> ℹ️ If you are looking for an ollama api wrapper, consider looking at [ollama-rs](https://github.com/pepperoni21/ollama-rs)
> ⚠️ This project is still not finished! Bugs may occur
This library provides support for [**LM Studio Servers**](https://lmstudio.ai). All features are made according to the [official documentation](https://lmstudio.ai/docs/local-server).
## Feature List
- Generating completions using chats
- Retrieving all models from the server
## To-Do List
- ~~Generating completions~~
- Supporting streams as responses
- Creating embeddings
## Examples
### Retrieve models
```rust
use rustylms::lmsserver::LMSServer;
#[tokio::main]
async fn main() {
let server = LMSServer::new("http://localhost:1234");
let models = server.get_models().await.expect("Unable to retrieve models");
println!("{:#?}", models);
}
```
### Generating a chat completion
```rust
use rustylms::{chat::Chat, lmsserver::LMSServer};
#[tokio::main]
async fn main() {
let server = LMSServer::new("http://localhost:1234");
let chat = Chat::new("model-name")
.system_prompt(
"You are a helpful assistant that gives information to any programming-related topic.",
)
.user_prompt("what is rust?");
let completion = chat
.get_completions(&server)
.await
.expect("could not get completions");
let message = completion.get_message().unwrap();
println!("The assistant answered: {}", message.content);
}
```