[package] description = "OpenObserve is an observability platform that allows you to capture, search, and analyze your logs, metrics, and traces." edition = "2024" homepage = "https://openobserve.ai/" keywords = [ "search", "log", "metrics", "traces", "analytics", "openobserve", "observability", "open source", "open-source", "opensource", ] license = "AGPL-3.0-only" name = "openobserve" repository = "https://github.com/openobserve/openobserve/" version = "0.14.6" publish = false # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [features] default = [] enterprise = [] mimalloc = ["dep:mimalloc"] jemalloc = ["dep:tikv-jemallocator"] profiling = ["dep:pprof"] pyroscope = ["dep:pyroscope", "dep:pyroscope_pprofrs"] tokio-console = ["dep:console-subscriber"] [profile.release] debug = false strip = true [profile.release-prod] inherits = "release" codegen-units = 1 lto = "thin" [profile.release-profiling] inherits = "release" debug = true strip = false codegen-units = 4 [dependencies] actix-cors = "0.7" actix-http = "3.9" actix-multipart = { version = "0.7", features = ["derive"] } actix-web.workspace = true actix-web-httpauth = "0.8" actix-web-lab = "0.21" actix-web-opentelemetry = { version = "0.19", features = ["metrics"] } actix-web-rust-embed-responder = { version = "2.2", default-features = false, features = [ "support-rust-embed-for-web", "base64", ] } actix-ws = "0.3.0" actix = "0.13.5" actix-web-actors = "4.3.0" actix-tls.workspace = true ahash.workspace = true anyhow.workspace = true argon2.workspace = true async-trait.workspace = true async-recursion.workspace = true async-walkdir.workspace = true awc = { version = "3.5", features = ["rustls-0_23"] } aws-sdk-sns.workspace = true base64.workspace = true bitflags = "2.9" bitvec.workspace = true blake3 = { version = "1.6", features = ["rayon"] } bytes.workspace = true byteorder.workspace = true chrono.workspace = true clap = { version = "4.1", default-features = false, features = [ "std", "help", "usage", "suggestions", "cargo", ] } cloudevents-sdk = { version = "0.7.0", features = ["actix"] } cron.workspace = true csv = "1.3" dashmap.workspace = true datafusion.workspace = true datafusion-proto.workspace = true datafusion-functions-aggregate-common.workspace = true datafusion-functions-json.workspace = true arrow.workspace = true arrow-flight.workspace = true arrow-schema.workspace = true parquet.workspace = true object_store.workspace = true env_logger.workspace = true etcd-client.workspace = true faststr.workspace = true flate2.workspace = true futures.workspace = true hex.workspace = true hashbrown.workspace = true http-auth-basic = "0.3" ipnetwork.workspace = true itertools.workspace = true jsonwebtoken = "9.3" log.workspace = true maxminddb = "0.25" memchr.workspace = true mimalloc = { version = "0.1.43", default-features = false, optional = true } once_cell.workspace = true opentelemetry.workspace = true opentelemetry_sdk.workspace = true opentelemetry-otlp.workspace = true opentelemetry-proto.workspace = true parking_lot.workspace = true prometheus.workspace = true promql-parser = "0.4" prost.workspace = true proto.workspace = true prettytable-rs = "0.10.0" pyroscope = { version = "0.5.8", optional = true } pyroscope_pprofrs = { version = "0.2.8", optional = true } rand.workspace = true getrandom.workspace = true rayon.workspace = true regex.workspace = true regex-syntax.workspace = true reqwest.workspace = true rust-embed-for-web = "11.2.1" rustls.workspace = true rustls-pemfile.workspace = true sea-orm.workspace = true segment.workspace = true serde.workspace = true serde_json.workspace = true sha256.workspace = true snafu.workspace = true snap.workspace = true sqlparser.workspace = true strum.workspace = true svix-ksuid.workspace = true syslog_loose = "0.21" thiserror.workspace = true time.workspace = true tikv-jemallocator = { version = "0.6", optional = true } tokio.workspace = true console-subscriber = { version = "0.4", optional = true } tonic.workspace = true tracing.workspace = true tracing-appender.workspace = true tracing-opentelemetry.workspace = true tracing-subscriber.workspace = true tempfile.workspace = true uaparser = "0.6.4" url.workspace = true utoipa.workspace = true utoipa-swagger-ui.workspace = true version-compare = "0.2.0" vector-enrichment.workspace = true vrl.workspace = true zstd.workspace = true config.workspace = true infra.workspace = true ingester.workspace = true wal.workspace = true report_server.workspace = true chromiumoxide.workspace = true lettre.workspace = true tantivy.workspace = true zip.workspace = true futures-util = "0.3.31" tokio-tungstenite = "0.24.0" tokio-util = "0.7.13" pprof = { version = "0.14", features = [ "flamegraph", "prost-codec", ], optional = true } [dev-dependencies] async-walkdir.workspace = true expect-test.workspace = true base64 = "0.22" float-cmp = "0.10" [workspace] members = [ "src/config", "src/infra", "src/ingester", "src/wal", "src/proto", "src/report_server", ] resolver = "2" [workspace.package] version = "0.1.0" edition = "2024" license = "AGPL-3.0" [workspace.dependencies] config = { path = "src/config" } infra = { path = "src/infra" } ingester = { path = "src/ingester" } wal = { path = "src/wal" } proto = { path = "src/proto" } report_server = { path = "src/report_server" } aes-siv = "0.7.0" ahash = { version = "0.8", features = ["serde"] } actix-web = { version = "4.9", features = ["rustls-0_23"] } actix-tls = { version = "3.4", features = [ "connect", "uri", "rustls-0_23-native-roots", "rustls-0_23-webpki-roots", ] } anyhow = "1.0" arc-swap = "1.7.1" argon2 = { version = "0.5", features = ["alloc", "password-hash"] } async-trait = "0.1" async-recursion = "1.0" async-walkdir = "1.0.0" aws-config = "1.5.17" aws-sdk-sns = "1.61.0" base64 = "0.22" bitvec = "1.0" bytes = "1.10" byteorder = "1.5" chromiumoxide = { git = "https://github.com/mattsse/chromiumoxide", features = [ "tokio-runtime", "_fetcher-rusttls-tokio", ], default-features = false, rev = "6f2392f78ae851e2acf33df8e9764cc299d837db" } chrono = { version = "0.4", default-features = false, features = ["clock"] } cityhasher = { version = "0.1", default-features = false } collapse = "0.1.2" cron = "0.15" dashmap = { version = "6.1", features = ["serde"] } datafusion = "45.0.0" datafusion-proto = "45.0.0" datafusion-functions-aggregate-common = "45.0.0" datafusion-functions-json = "0.45.0" expect-test = "1.4" arrow = { version = "54.1.0", features = ["ipc_compression", "prettyprint"] } arrow-flight = "54.1.0" arrow-json = "54.1.0" arrow-schema = { version = "54.1.0", features = ["serde"] } parquet = { version = "54.1.0", features = ["arrow", "async", "object_store"] } object_store = { version = "0.11.2", features = ["aws", "azure", "gcp"] } sqlparser = { version = "0.53.0", features = ["serde", "visitor"] } dotenv_config = "0.2.2" dotenvy = "0.15.7" env_logger = "0.10" etcd-client = { version = "0.12", features = ["tls"] } faststr = { version = "0.2", features = ["serde"] } flate2 = { version = "1.0", features = ["zlib"] } futures = "0.3" get_if_addrs = "0.5" getrandom = "0.2.15" hashlink = "0.10" hashbrown = { version = "0.15", features = ["serde"] } hex = "0.4" indexmap = { version = "2.7", features = ["serde"] } ipnetwork = "0.20" itertools = "0.13" lettre = { version = "0.11", default-features = false, features = [ "builder", "hostname", "smtp-transport", "pool", "tokio1", "tokio1-rustls-tls", ] } log = "0.4" md5 = "0.7.0" memchr = "2.7" murmur3 = "0.5" async-nats = "0.39" once_cell = "1.20" ordered-float = { version = "4.5.0", features = ["serde"] } parking_lot = "0.12" prometheus = { version = "0.13", features = ["process"] } prost = "0.13.1" rand = "0.8" rayon = "1.10" regex = "1.11" regex-syntax = "0.8" reqwest = { version = "0.12", default-features = false, features = [ "rustls-tls-native-roots", "stream", ] } rustls-pemfile = "2" rustls = { version = "0.23.20", default-features = false, features = [ "std", "tls12", ] } sea-orm = { version = "1.1.8", features = [ "sqlx-all", "runtime-tokio-rustls", "macros", ] } sea-orm-migration = { version = "1.1.8", features = [ "sqlx-mysql", "sqlx-postgres", "sqlx-sqlite", "runtime-tokio-rustls", ] } segment = "~0.2.4" serde = { version = "1", features = ["derive"] } serde_json = { version = "1", features = ["arbitrary_precision"] } sha1 = "0.10.6" sha256 = "1.4.0" snafu = "0.7.5" snap = "1" sqlx = { version = "0.8.3", features = [ "runtime-tokio-rustls", "postgres", "mysql", "sqlite", "chrono", ] } strum = { version = "0.26", features = ["derive"] } svix-ksuid = { version = "0.8", features = ["serde"] } sysinfo = "0.33" tantivy = { version = "0.22.0", features = ["quickwit"] } tempfile = "3" thiserror = "1.0" time = "0.3" tokio = { version = "1", features = ["full"] } tokio-util = { version = "0.7.12", features = ["compat"] } tokio-stream = "0.1" tonic = { version = "0.12.3", features = ["gzip", "prost", "tls"] } tracing = "0.1.40" tracing-appender = "0.2.3" tracing-log = "0.2" tracing-opentelemetry = "0.27" tracing-subscriber = { version = "0.3.0", features = [ "env-filter", "json", "registry", ] } opentelemetry = "0.26" opentelemetry_sdk = { version = "0.26", features = [ "rt-tokio", "trace", "metrics", ] } opentelemetry-otlp = { version = "0.26", features = [ "http-proto", "serialize", "serde", "trace", "reqwest-client", ] } opentelemetry-proto = { version = "0.26", features = [ "gen-tonic", "with-serde", "logs", "metrics", "trace", ] } url = "2.5" urlencoding = "2.1" utoipa = { version = "4", features = ["actix_extras", "openapi_extensions"] } utoipa-swagger-ui = { version = "4", features = ["actix-web"] } vector-enrichment = { version = "0.1.0", package = "enrichment", git = "https://github.com/openobserve/vector", rev = "063cabbbf4bc6f75794fa0ccd3b0bd5c074f0e35" } vrl = { version = "0.22", features = ["value", "compiler", "test"] } zstd = "0.13" zip = "2.5.0"