[package]
name = "ilo"
version = "26.5.0"
edition = "2024"
rust-version = "1.85"
description = "ilo - the token-minimal programming language AI agents write"
license = "MIT"
repository = "https://github.com/ilo-lang/ilo"
homepage = "https://github.com/ilo-lang/ilo"
authors = ["Daniel John Morris"]
keywords = ["language", "ai", "interpreter", "compiler", "vm"]
categories = ["compilers", "command-line-utilities"]
readme = "README.md"
[lib]
name = "ilo"
crate-type = ["staticlib", "rlib"]
[features]
default = ["cranelift", "http"]
http = ["dep:minreq"]
cranelift = ["dep:cranelift-codegen", "dep:cranelift-frontend", "dep:cranelift-jit", "dep:cranelift-module", "dep:cranelift-native", "dep:cranelift-object", "dep:target-lexicon", "dep:postcard"]
llvm = ["dep:inkwell"]
tools = ["dep:tokio", "dep:reqwest"]
golden = []
[dependencies]
logos = "0.16.1"
serde = { version = "1.0.228", features = ["derive"] }
serde_json = "1.0.149"
thiserror = "2.0.18"
libc = "0.2"
cranelift-codegen = { version = "0.116", optional = true }
cranelift-frontend = { version = "0.116", optional = true }
cranelift-jit = { version = "0.116", optional = true }
cranelift-module = { version = "0.116", optional = true }
cranelift-native = { version = "0.116", optional = true }
cranelift-object = { version = "0.116", optional = true }
target-lexicon = { version = "0.12", optional = true }
postcard = { version = "1.0", features = ["alloc"], default-features = false, optional = true }
inkwell = { version = "0.5", features = ["llvm18-0"], optional = true }
minreq = { version = "2.14", default-features = false, features = ["https-rustls"], optional = true }
tokio = { version = "1", features = ["rt", "macros", "process", "io-util", "sync"], optional = true }
reqwest = { version = "0.12", default-features = false, features = ["rustls-tls", "json"], optional = true }
clap = { version = "4", features = ["derive"] }
fastrand = "2"
getrandom = "0.2"
regex = "1"
chrono = { version = "0.4", default-features = false, features = ["clock"] }
percent-encoding = "2"
base64 = "0.22"
chrono-tz = "0.10"
sha2 = "0.10"
hmac = "0.12"
hex = "0.4"
subtle = "2"
semver = "1"
[dev-dependencies]
wiremock = "0.6"
tokio = { version = "1", features = ["rt-multi-thread", "macros"] }
tempfile = "3"
serde_json = "1"
[profile.release]
strip = true
lto = true
codegen-units = 1