Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions crates/flyllm/.cargo-ok
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"v":1}
6 changes: 6 additions & 0 deletions crates/flyllm/.cargo_vcs_info.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"git": {
"sha1": "d0c37eb8177f64585ededfdc6b57cb3550106464"
},
"path_in_vcs": ""
}
4 changes: 4 additions & 0 deletions crates/flyllm/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
/target
Cargo.lock
CLAUDE.md
debug_folder
42 changes: 42 additions & 0 deletions crates/flyllm/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Changelog

All notable changes to FlyLLM will be documented in this file.

## [0.3.1] - 2025-08-25
### Added
- Upon request, the conversion from `&str` to ProviderType has been implemented

## [0.3.0] - 2025-08-06
### Added
- Refactored the internals of FlyLLM, making it way simpler to modify and understand
- Added optional debugging to LlmManager, allowing the user to store all requests and their metadata to JSON files automatically

## [0.2.3] - 2025-06-06
### Added
- Rate limiting with wait for whenever all providers are overloaded

## [0.2.2] - 2025-05-19
### Added
- Made the library entirely asynchronous, making the library more suitable for use in async contexts

## [0.2.1] - 2025-05-12
### Added
- Capability of listing all available models from all providers

## [0.2.0] - 2025-04-30
### Added
- Ollama provider support
- Builder pattern for easier configuration
- Aggregation of more basic routing strategies
- Added optional custom endpoint configuration for any provider

## [0.1.0] - 2025-04-27
### Added
- Initial release
- Multiple Provider Support (OpenAI, Anthropic, Google, Mistral)
- Task-Based Routing
- Load Balancing
- Failure Handling
- Parallel Processing
- Custom Parameters
- Usage Tracking
91 changes: 91 additions & 0 deletions crates/flyllm/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2021"
name = "flyllm"
version = "0.3.1"
authors = ["Pablo Rodríguez <rodmarprogrammer@gmail.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A Rust library for unifying LLM backends as an abstraction layer with load balancing."
readme = "README.md"
keywords = [
"llm",
"ai",
"openai",
"anthropic",
"load-balancing",
]
license = "MIT"
repository = "https://github.com/rodmarkun/flyllm"

[lib]
name = "flyllm"
path = "src/lib.rs"

[[example]]
name = "task_routing"
path = "examples/task_routing.rs"

[dependencies.async-trait]
version = "0.1.88"

[dependencies.env_logger]
version = "0.10"

[dependencies.futures]
version = "0.3.31"

[dependencies.json]
version = "0.12.4"

[dependencies.log]
version = "0.4"

[dependencies.rand]
version = "0.9.1"

[dependencies.reqwest]
version = "0.12.15"
features = ["json"]

[dependencies.serde]
version = "1.0"
features = ["derive"]

[dependencies.serde_json]
version = "1.0.140"

[dependencies.tokio]
version = "1"
features = [
"macros",
"rt-multi-thread",
"sync",
]

[dependencies.url]
version = "2.5.4"

[dev-dependencies.tokio]
version = "1"
features = [
"macros",
"rt-multi-thread",
"sync",
]
[dev-dependencies.httpmock]
version = "0.7"
29 changes: 29 additions & 0 deletions crates/flyllm/Cargo.toml.orig

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

21 changes: 21 additions & 0 deletions crates/flyllm/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2025 Pablo Rodríguez Martín

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Loading