[server] # Addresses the XRPC server listens on. When using as an env var, comma-separated. # # Can also be specified via environment variable `BOBBIN_BIND`. # # Default value: ["127.0.0.1:8090", "[::1]:8090"] #binds = ["127.0.0.1:8090", "[::1]:8090"] # The amount of time in seconds to allow in-flight requests to drain after sigterm # before forcing the listener closed. # # Can also be specified via environment variable `BOBBIN_SHUTDOWN_GRACE_SECS`. # # Default value: 30 #shutdown_grace_secs = 30 [hydrant] # Base URL of the hydrant instance - the cursor-replayable /stream lives # under this. Use `ws://` or `wss://` - `http://` and `https://` # are rewritten to the corresponding ws scheme at connection time! # # Can also be specified via environment variable `BOBBIN_HYDRANT_URL`. # # Default value: "http://127.0.0.1:13010" #url = "http://127.0.0.1:13010" # The cursor to request on first connect. Reconnects ignore this and resume # strictly after the last cursor seen internally. # # Can also be specified via environment variable `BOBBIN_START_CURSOR`. # # Default value: 0 #start_cursor = 0 [ingest] # Concurrent in-flight resolves during ingest. One slot per slingshot rtt. # Default 16 sits at the measured throughput # knee for cold replay against a healthy hydrant. The committer stays # serial so that like, cursor and Spur allocation order are preserved. # # Can also be specified via environment variable `BOBBIN_INGEST_PARALLELISM`. # # Default value: 16 #parallelism = 16 [slingshot] # Base URL of a slingshot instance. Used for record bodies and identity. # # Can also be specified via environment variable `BOBBIN_SLINGSHOT_URL`. # # Default value: "http://127.0.0.1:13011" #url = "http://127.0.0.1:13011" [record_cache] # Bound of bytes on the in-process record LRU. Records evict on a weighted # LRU policy keyed on URI plus payload length. # # Can also be specified via environment variable `BOBBIN_RECORD_LRU_BYTES`. # # Default value: 67108864 #lru_bytes = 67108864 [search] # The heap size in bytes for the in-mem tantivy writer. Larger values # trade RAM for fewer segment merges - the index itself lives in # `RamDirectory` and is rebuilt from hydrant replay on every restart. # # Can also be specified via environment variable `BOBBIN_SEARCH_HEAP_BYTES`. # # Default value: 50000000 #heap_bytes = 50000000 [knot] # Whether to allow the knot proxy to dial private/loopback addresses. Off in # production - on for local testing against a knotserver on localhost. # # Can also be specified via environment variable `BOBBIN_KNOT_ALLOW_PRIVATE`. # # Default value: false #allow_private = false # Require https on knot hosts. Disable only when proxying to a local # knot for development. # # Can also be specified via environment variable `BOBBIN_KNOT_REQUIRE_HTTPS`. # # Default value: true #require_https = true [log] # Log emitter format. `text` produces human-readable output for local # development. `json` emits one structured object per line for log # shippers in production. # # Can also be specified via environment variable `BOBBIN_LOG_FORMAT`. # # Default value: "text" #format = "text" # `tracing-subscriber` env-filter directive. Defaults to `info` across # every span - override with `BOBBIN_LOG=bobbin_xrpc=debug,info` etc. # # Can also be specified via environment variable `BOBBIN_LOG`. # # Default value: "info" #filter = "info"