Source: https://seerepo.com/r/opensearch-project/OpenSearch/built
Markdown source: https://seerepo.com/r/opensearch-project/OpenSearch/built.md
Description: OpenSearch is a Java repo built with JAX-RS, grpc-services, JetBrains, servlet-api, and Tokio.

# What is OpenSearch built with?

OpenSearch is a Java repo built with JAX-RS, grpc-services, JetBrains, servlet-api, and Tokio. It stores its data in datafusion, Apache, object_store, arrow, software.amazon.awssdk:sdk-core, and 7 more, reaches it with joou-java-6, signs people in with com.google.auth:google-auth-library-oauth2-http, google-oauth-client, msal4j, nimbus-jose-jwt, oauth2-oidc-sdk, and 3 more, makes its content with compiler, jdom2, jsoup, mail, org.apache.james:apache-mime4j-dom, and 9 more, validates its data with json-schema-validator, is tested with hamcrest-core, io.opentelemetry:opentelemetry-sdk-testing, reactor-test, org.hamcrest:hamcrest, junit:junit, and 1 more, deploys with commons-logging, io.opentelemetry:opentelemetry-sdk-common, log4j-1.2-api, log4j-slf4j-impl, org.apache.logging.log4j:log4j-api, and 10 more, and uses apache-client, arrow-c-data, arrow-memory-netty-buffer-patch, avro, aws-crt-client, and 6 more. It has 3,021,895 written lines, with 5,508 test files.

Read on November 9, 2026, at commit 2923a00.

Repository: https://github.com/opensearch-project/OpenSearch

## Backend

### The base

- **[JAX-RS](https://seerepo.com/uses/jax-rs)**

### Data

- **apache-client**
- **arrow-c-data**
- **arrow-memory-netty-buffer-patch**
- **avro**
- **aws-crt-client**
- **aws-json-protocol**
- **[kafka-clients](https://seerepo.com/uses/kafka-clients)**
- **lucene-memory**
- **org.apache.arrow:flight-core**
- **[s3](https://seerepo.com/uses/s3)**
- **datafusion**: 104 files
- **[Apache](https://seerepo.com/uses/apache)**: 80 files
- **[object_store](https://seerepo.com/uses/object-store)**: 30 files
- **arrow**: 25 files
- **software.amazon.awssdk:sdk-core**: 15 files
- **org.apache.hadoop:hadoop-client-api**: 9 files
- **org.apache.calcite.avatica:avatica-core**: 8 files
- **datafusion-datasource**: 7 files
- **com.azure:azure-storage-blob**: 4 files
- **software.amazon.awssdk:kms**: 3 files
- **org.apache.hadoop:hadoop-hdfs**: 2 files
- **org.ehcache:ehcache**: 2 files
- **foyer**: 1 file

### Data access

- **joou-java-6**

### Sign-in

- **com.google.auth:google-auth-library-oauth2-http**
- **google-oauth-client**
- **msal4j**
- **nimbus-jose-jwt**
- **oauth2-oidc-sdk**
- **software.amazon.awssdk:auth**: 14 files
- **software.amazon.awssdk:sts**: 2 files
- **com.azure:azure-identity**: 1 file

## Support

### The base

- **grpc-services**
- **[JetBrains](https://seerepo.com/uses/jetbrains)**
- **servlet-api**
- **[Tokio](https://seerepo.com/uses/tokio)**: 31 files

### Content

- **compiler**
- **jdom2**
- **jsoup**
- **mail**
- **org.apache.james:apache-mime4j-dom**
- **pdfbox-io**
- **poi**
- **poi-ooxml**
- **poi-ooxml-lite**
- **poi-scratchpad**
- **tika-parsers**
- **[parquet](https://seerepo.com/uses/parquet)**: 18 files
- **org.apache.tika:tika-core**: 2 files
- **org.apache.pdfbox:pdfbox**: 1 file

### Validation

- **json-schema-validator**

### Testing

- **hamcrest-core**
- **io.opentelemetry:opentelemetry-sdk-testing**
- **reactor-test**
- **org.hamcrest:hamcrest**: 2,099 files
- **junit:junit**: 930 files
- **io.netty:netty-pkitesting**: 6 files

### Deploy

- **[commons-logging](https://seerepo.com/uses/commons-logging)**
- **io.opentelemetry:opentelemetry-sdk-common**
- **[log4j-1.2-api](https://seerepo.com/uses/log4j-12-api)**
- **[log4j-slf4j-impl](https://seerepo.com/uses/log4j-slf4j-impl)**
- **[org.apache.logging.log4j:log4j-api](https://seerepo.com/uses/orgapachelogginglog4j-log4j-api)**
- **[slf4j-api](https://seerepo.com/uses/slf4j-api)**
- **[OpenTelemetry](https://seerepo.com/uses/opentelemetry)**: 14 files
- **[log](https://seerepo.com/uses/log)**: 12 files
- **[org.apache.logging.log4j:log4j-core](https://seerepo.com/uses/orgapachelogginglog4j-log4j-core)**: 11 files
- **software.amazon.awssdk:regions**: 6 files
- **io.opentelemetry:opentelemetry-sdk**: 5 files
- **software.amazon.awssdk:ec2**: 3 files
- **io.opentelemetry:opentelemetry-exporter-logging**: 1 file
- **[io.opentelemetry:opentelemetry-exporter-otlp](https://seerepo.com/uses/ioopentelemetry-opentelemetry-exporter-otlp)**: 1 file
- **io.opentelemetry.semconv:opentelemetry-semconv**: 1 file

### Tools

- **asm**
- **asm-analysis**
- **asm-commons**
- **asm-tree**
- **asm-util**
- **checker-qual**
- **commons-cli**
- **commons-compiler**
- **jsr305**
- **proc-macro2**
- **Shadow**
- **spotbugs-annotations**
- **value-annotations**
- **org.antlr:antlr4-runtime**: 7 files
- **org.apache.ant:ant**: 4 files
- **OpenJDK**: 2 files
- **org.apache.maven:maven-model**: 2 files
- **quote**: 1 file
- **syn**: 1 file

### Other

- **arrow-memory-netty**
- **arrow-memory-unsafe**
- **bc-fips**
- **bcpkix-fips**
- **bctls-fips**
- **bcutil-fips**
- **checksums**
- **com.google.code.gson:gson**
- **commons-beanutils**
- **commons-codec**
- **commons-collections**
- **commons-io**
- **commons-lang3**
- **commons-math3**
- **failureaccess**
- **google-api-client**
- **google-http-client-gson**
- **google-http-client-jackson2**
- **grpc-core**
- **grpc-netty-shaded**
- **grpc-protobuf-lite**
- **grpc-util**
- **HdrHistogram**
- **httpcore**
- **httpcore5**
- **ipaddress**
- **jackson-annotations**
- **jackson-core**
- **jackson-databind**
- **jackson-dataformat-cbor**
- **jackson-dataformat-smile**
- **jackson-dataformat-xml**
- **jackson-dataformat-yaml**
- **jackson-datatype-jdk8**
- **jackson-datatype-jsr310**
- **jackson-jakarta-rs-json-provider**
- **jackson-module-jaxb-annotations**
- **jakarta.annotation-api**
- **janino**
- **jaxb-api**
- **jaxb-impl**
- **jcodings**
- **jersey-client**
- **jettison**
- **jna**
- **jna-platform**
- **jopt-simple**
- **json-path**
- **json-smart**
- **juniversalchardet**
- **language-detector**
- **libphonenumber**
- **lucene-backward-codecs**
- **lucene-highlighter**
- **lz4-java**
- **morfologik-fsa**
- **morfologik-stemming**
- **netty-all**
- **netty-codec**
- **netty-codec-base**
- **netty-codec-classes-quic**
- **netty-codec-compression**
- **netty-codec-dns**
- **netty-codec-http**
- **netty-codec-http2**
- **netty-codec-http3**
- **netty-codec-native-quic**
- **netty-codec-socks**
- **netty-common**
- **netty-handler-proxy**
- **netty-nio-client**
- **netty-resolver-dns**
- **netty-tcnative-classes**
- **netty-transport**
- **netty-transport-classes-epoll**
- **netty-transport-native-unix-common**
- **okhttp**
- **okio-jvm**
- **org.apache.httpcomponents.client5:httpclient5**
- **perfmark-api**
- **picocli**
- **plexus-utils**
- **protocol-core**
- **reactor-core**
- **reactor-netty-core**
- **reactor-netty-http**
- **snakeyaml**
- **snappy-java**
- **stax2-api**
- **woodstox-core**
- **xz**
- **org.apache.lucene:lucene-core**: 923 files
- **org.apache.calcite:calcite-core**: 262 files
- **org.apache.lucene:lucene-queries**: 30 files
- **io.netty:netty-handler**: 25 files
- **tools.jackson.core:jackson-core**: 24 files
- **serde_json**: 20 files
- **io.grpc:grpc-api**: 18 files
- **org.reactivestreams:reactive-streams**: 18 files
- **io.netty:netty-buffer**: 17 files
- **joda-time:joda-time**: 15 files
- **org.locationtech.jts:jts-core**: 15 files
- **futures**: 14 files
- **chrono**: 13 files
- **dashmap**: 10 files
- **tempfile**: 10 files
- **com.fasterxml.jackson.core:jackson-databind**: 9 files
- **com.ibm.icu:icu4j**: 9 files
- **once_cell**: 9 files
- **prost**: 9 files
- **regex**: 9 files
- **arrow-array**: 8 files
- **bytes**: 8 files
- **io.grpc:grpc-stub**: 7 files
- **parking_lot**: 7 files
- **io.opentelemetry:opentelemetry-context**: 6 files
- **org.roaringbitmap:RoaringBitmap**: 6 files
- **tokio-util**: 6 files
- **async-trait**: 5 files
- **javax.inject:javax.inject**: 5 files
- **net.bytebuddy:byte-buddy**: 5 files
- **serde**: 5 files
- **com.jcraft:jzlib**: 4 files
- **Netflix**: 4 files
- **url**: 4 files
- **datafusion-common**: 3 files
- **io.grpc:grpc-netty**: 3 files
- **roaring**: 3 files
- **arrow-schema**: 2 files
- **com.tdunning:t-digest**: 2 files
- **crc32fast**: 2 files
- **[Google](https://seerepo.com/uses/google)**: 2 files
- **libc**: 2 files
- **org.apache.httpcomponents:httpclient**: 2 files
- **org.apache.lucene:lucene-analysis-common**: 2 files
- **rayon**: 2 files
- **software.amazon.awssdk:aws-core**: 2 files
- **thiserror**: 2 files
- **tikv-jemallocator**: 2 files
- **tools.jackson.dataformat:jackson-dataformat-cbor**: 2 files
- **tools.jackson.dataformat:jackson-dataformat-smile**: 2 files
- **arrow-ipc**: 1 file
- **base64**: 1 file
- **chrono-tz**: 1 file
- **com.github.luben:zstd-jni**: 1 file
- **fancy-regex**: 1 file
- **io.grpc:grpc-protobuf**: 1 file
- **io.netty:netty-resolver**: 1 file
- **lazy_static**: 1 file
- **num_cpus**: 1 file
- **org.apache.arrow:arrow-compression**: 1 file
- **org.apache.commons:commons-collections4**: 1 file
- **org.apache.commons:commons-compress**: 1 file
- **org.apache.lucene:lucene-queryparser**: 1 file
- **org.apache.thrift:libthrift**: 1 file
- **org.jboss.resteasy:resteasy-jackson2-provider**: 1 file
- **org.snakeyaml:snakeyaml-engine**: 1 file
- **sha1**: 1 file
- **software.amazon.awssdk.crt:aws-crt**: 1 file
- **tikv-jemalloc-ctl**: 1 file
- **tikv-jemalloc-sys**: 1 file
- **tokio-stream**: 1 file

## Other repos with a similar stack

- [apache/flink](https://seerepo.com/r/apache/flink/built): apache-client, aws-crt-client, s3, Apache, org.apache.hadoop:hadoop-hdfs, software.amazon.awssdk:sts, commons-logging, org.apache.logging.log4j:log4j-api, OpenTelemetry, org.apache.logging.log4j:log4j-core, io.opentelemetry:opentelemetry-exporter-logging, io.opentelemetry:opentelemetry-exporter-otlp · [Compare](https://seerepo.com/compare/apache/flink/vs/opensearch-project/OpenSearch)
- [conductor-oss/conductor](https://seerepo.com/r/conductor-oss/conductor/built): kafka-clients, s3, com.azure:azure-storage-blob, grpc-services, com.google.auth:google-auth-library-oauth2-http, jsoup, org.apache.pdfbox:pdfbox, log4j-slf4j-impl, org.apache.logging.log4j:log4j-api, org.apache.logging.log4j:log4j-core · [Compare](https://seerepo.com/compare/conductor-oss/conductor/vs/opensearch-project/OpenSearch)
- [airbytehq/airbyte](https://seerepo.com/r/airbytehq/airbyte/built): kafka-clients, s3, Apache, JetBrains, com.google.auth:google-auth-library-oauth2-http, software.amazon.awssdk:sts, jsoup, log4j-slf4j-impl, org.apache.logging.log4j:log4j-api, org.apache.logging.log4j:log4j-core · [Compare](https://seerepo.com/compare/airbytehq/airbyte/vs/opensearch-project/OpenSearch)
- [spring-projects/spring-boot](https://seerepo.com/r/spring-projects/spring-boot/built): JAX-RS, grpc-services, servlet-api, org.apache.logging.log4j:log4j-api, OpenTelemetry, org.apache.logging.log4j:log4j-core, io.opentelemetry:opentelemetry-sdk, io.opentelemetry:opentelemetry-exporter-otlp · [Compare](https://seerepo.com/compare/opensearch-project/OpenSearch/vs/spring-projects/spring-boot)
- [apache/dubbo](https://seerepo.com/r/apache/dubbo/built): JAX-RS, compiler, commons-logging, log4j-slf4j-impl, org.apache.logging.log4j:log4j-api, OpenTelemetry, org.apache.logging.log4j:log4j-core · [Compare](https://seerepo.com/compare/apache/dubbo/vs/opensearch-project/OpenSearch)
- [chroma-core/chroma](https://seerepo.com/r/chroma-core/chroma/built): s3, object_store, arrow, foyer, Tokio, parquet, OpenTelemetry · [Compare](https://seerepo.com/compare/chroma-core/chroma/vs/opensearch-project/OpenSearch)

## Frequently asked questions

### What language is OpenSearch written in?

OpenSearch is written in Java, with 3,021,895 written lines.

### What framework does OpenSearch use?

OpenSearch is built with JAX-RS, grpc-services, JetBrains, servlet-api, and Tokio.

### What database does OpenSearch use?

OpenSearch stores its data in datafusion, Apache, object_store, arrow, software.amazon.awssdk:sdk-core, org.apache.hadoop:hadoop-client-api, org.apache.calcite.avatica:avatica-core, datafusion-datasource, com.azure:azure-storage-blob, software.amazon.awssdk:kms, org.apache.hadoop:hadoop-hdfs, and org.ehcache:ehcache and reaches it with joou-java-6.

### What does OpenSearch sign people in with?

OpenSearch signs people in with com.google.auth:google-auth-library-oauth2-http, google-oauth-client, msal4j, nimbus-jose-jwt, oauth2-oidc-sdk, software.amazon.awssdk:auth, software.amazon.awssdk:sts, and com.azure:azure-identity.

### What services does OpenSearch use?

OpenSearch uses apache-client, arrow-c-data, arrow-memory-netty-buffer-patch, avro, aws-crt-client, aws-json-protocol, kafka-clients, lucene-memory, org.apache.arrow:flight-core, s3, and foyer.

### Does OpenSearch have tests?

Yes. OpenSearch has 5,508 test files and is tested with hamcrest-core, io.opentelemetry:opentelemetry-sdk-testing, reactor-test, org.hamcrest:hamcrest, junit:junit, and io.netty:netty-pkitesting.

### Which repos have a stack like OpenSearch's?

The ones that share most of its stack: apache/flink, conductor-oss/conductor, and airbytehq/airbyte.

## What is your repo built with?

Any public repo, with no account: https://seerepo.com/r/owner/repo/built, with the owner and name it has on GitHub.
