1
0
Fork 0
mirror of synced 2026-07-09 15:24:19 +00:00
Cloud-native search engine for observability. An open-source alternative to Datadog, Elasticsearch, Loki, and Tempo. https://quickwit.io
  • Rust 90.8%
  • HTML 7.3%
  • TypeScript 1%
  • HCL 0.2%
  • Shell 0.2%
  • Other 0.3%
Find a file
Paul Masurel a5ad540a74
aws: use caching DNS resolver for S3 HTTP client to reduce lookup churn (#6584)
* aws: use caching DNS resolver for S3 HTTP client to reduce lookup churn

The AWS SDK's default HTTP client resolves DNS via hyper's uncached
GaiResolver, causing redundant blocking getaddrinfo lookups under high
connection churn (e.g. many concurrent S3 range requests). Swap in a
Hickory-based resolver with a configurable minimum TTL floor to absorb
bursts while still following endpoint IP rotations.

* Apply suggestions from code review

Co-authored-by: Adrien Guillo <adrien.guillo@gmail.com>

* aws: fall back to the OS resolver when the caching DNS resolver misses

Hickory only speaks the DNS protocol (plus /etc/hosts), so endpoints
resolved through other NSS sources (mDNS, LDAP, custom nsswitch.conf
plugins) would otherwise fail to resolve now that it's used for all
AWS service configs.

* Not using hickory anymore.

The main benefit of hickory is: read TTL from DNS entry, but we override that anyway + being really async.

The cons was that it does not hit libc based resolve (reading hosts etc.).

This commit also adds support for HTTP_PROXY.

---------

Co-authored-by: Adrien Guillo <adrien.guillo@gmail.com>
2026-07-08 18:26:33 +02:00
.cargo Update the instruction set used to build our images (#6446) 2026-05-19 16:45:40 +02:00
.claude/skills Add update-lambda skill and fix lambda- release tag prefix (#6457) 2026-05-20 14:49:13 +02:00
.devcontainer update devcontainer config (#6100) 2026-01-20 13:16:54 -05:00
.github Build lambda ARM64 artifact on edge builds to main (#6569) 2026-07-01 12:40:03 -04:00
.localstack Fix startup script in localstack (#3178) 2023-04-14 17:21:01 +00:00
build/cross-images fix(ci): bump cross images to focal base for newer libclang (#6382) 2026-05-07 07:52:43 +00:00
config Renew gRPC and REST connections after max_connection_age (#6547) 2026-07-07 20:51:57 +00:00
distribution Pin remaining Docker container images. See quickwit-oss#5937 (#5943) 2025-10-21 09:56:55 -04:00
docs Rename cert_reload_interval to cert_poll_interval 2026-07-02 16:43:48 -04:00
monitoring fix the PromQL for cache misses (#5879) 2025-09-05 11:27:23 -04:00
quickwit aws: use caching DNS resolver for S3 HTTP client to reduce lookup churn (#6584) 2026-07-08 18:26:33 +02:00
.dockerignore Add misc. fixes for Kubernetes support 2022-06-23 12:19:22 -04:00
.env.example fix(ci): pin localstack to 4.14.0 (#6303) 2026-04-15 10:08:54 +00:00
.gitattributes Editing the gitattributes to remove the codegen directories from PR. (#4064) 2023-11-01 18:45:41 +09:00
.gitignore Remove and ignore ca.srl file 2026-06-18 16:38:52 -04:00
_typos.toml Fix typos all over the codebase (#5259) 2024-07-27 12:08:58 +09:00
CHANGELOG.md Remove search stream endpoint (#5886) 2025-09-23 15:12:12 +02:00
CLAUDE.md docs(claude): note review-reply threading hygiene (#6421) 2026-05-12 09:48:47 -04:00
CODE_OF_CONDUCT.md Add code of conduct 2021-04-19 16:23:11 -07:00
CODE_STYLE.md Added a bash script to check the log format. (#4150) 2023-11-16 02:53:51 +00:00
CONTRIBUTING.md Bumps node from 20 to 24 2026-01-16 18:57:35 +01:00
docker-compose.yml Fix test_gcp_pubsub_source flaky test (#6068) 2025-12-31 12:35:20 -05:00
Dockerfile automate lambda binary build in release workflow (#6458) 2026-05-20 16:27:26 +02:00
install.sh add gzip to commands needed for install (#5385) 2024-09-04 20:15:25 +02:00
LICENSE Fix license change 2025-02-25 18:00:41 -05:00
LICENSE-3rdparty.csv Remove native-tls from transitive dependencies (#6537) 2026-06-24 11:39:01 +02:00
Makefile Set up diesel-guard (#6333) 2026-04-22 20:20:21 -04:00
README.md Update description in README.md 2026-06-19 18:29:35 +02:00
SECURITY.md Publish security policy 2022-08-15 13:40:14 -04:00

CI codecov OpenSSF Scorecard Contributor Covenant License: Apache 2.0 Twitter Follow Discord



Quickwit Cloud-Native Search Engine Quickwit Cloud-Native Search Engine

Open-source search engine for observability (logs, traces, and soon metrics!).

Quickstart | Docs | Tutorials | Chat | Download


We just released Quickwit 0.8! Read the blog post to learn about the latest powerful features!

Quickwit is the fastest search engine on cloud storage. It's the perfect fit for observability use cases

🚀 Quickstart



💡 Features

  • Full-text search and aggregation queries
  • Elasticsearch-compatible API, use Quickwit with any Elasticsearch or OpenSearch client
  • Jaeger-native
  • OTEL-native for logs and traces
  • Schemaless or strict schema indexing
  • Schemaless analytics
  • Sub-second search on cloud storage (Amazon S3, Azure Blob Storage, Google Cloud Storage, …)
  • Decoupled compute and storage, stateless indexers & searchers
  • Grafana data source
  • Kubernetes ready - See our helm-chart
  • RESTful API

Enterprise ready

  • Multiple data sources Kafka / Kinesis / Pulsar native
  • Multi-tenancy: indexing with many indexes and partitioning
  • Retention policies
  • Delete tasks (for GDPR use cases)
  • Distributed and highly available* engine that scales out in seconds (*HA indexing only with Kafka)

📑 Architecture overview

Quickwit Distributed TracingQuickwit Distributed Tracing

📕 Documentation

📚 Resources

🙋 FAQ

How can I switch from Elasticsearch or OpenSearch to Quickwit?

Quickwit supports a large subset of Elasticsearch/OpenSearch API.

For instance, it has an ES-compatible ingest API to make it easier to migrate your log shippers (Vector, Fluent Bit, Syslog, ...) to Quickwit.

On the search side, the most popular Elasticsearch endpoints, query DSL, and even aggregations are supported.

The list of available endpoints and queries is available here, while the list of supported aggregations is available here.

Let us know if part of the API you are using is missing!

If the client you are using is refusing to connect to Quickwit due to missing headers, you can use the extra_headers option in the node configuration to impersonate any compatible version of Elasticsearch or OpenSearch.

How is Quickwit different from traditional search engines like Elasticsearch or Solr?

The core difference and advantage of Quickwit is its architecture built from the ground to search on cloud storage. We optimized IO paths, revamped the index data structures and made search stateless and sub-second on cloud storage.

How does Quickwit compare to Elastic in terms of cost?

We estimate that Quickwit can be up to 10x cheaper on average than Elastic. To understand how, check out our blog post about searching the web on AWS S3.

What license does Quickwit use?

Quickwit is open-source under the Apache License, Version 2.0 - Apache-2.0.

Is it possible to set up Quickwit for a High Availability (HA)?

HA is available for search, for indexing it's available only with a Kafka source.

🤝 Contribute and spread the word

We are always thrilled to receive contributions: code, documentation, issues, or feedback. Here's how you can help us build the future of log management:

After your contributions are accepted, don't forget to claim your swag by emailing us at hello@quickwit.io. Thank you for contributing!

💬 Join Our Community

We welcome everyone to our community! Whether you're contributing code or just saying hello, we'd love to hear from you. Here's how you can connect with us: