Source: https://seerepo.com/r/alibaba/canal/built
Markdown source: https://seerepo.com/r/alibaba/canal/built.md
Description: canal is a Java repo built with org.springframework.boot:spring-boot-starter-web, Spring Boot, Spring, org.jboss.netty:netty, Vue, and 1 more.

# What is canal built with?

canal is a Java repo built with org.springframework.boot:spring-boot-starter-web, Spring Boot, Spring, org.jboss.netty:netty, Vue, and 1 more. It stores its data in com.alibaba:druid, Elasticsearch, MySQL, org.apache.zookeeper:zookeeper, RabbitMQ, and 6 more, reaches it with mybatis, mybatis-spring, and org.springframework:spring-orm, is tested with org.springframework.boot:spring-boot-starter-test, powermock-module-junit4, junit:junit, org.powermock:powermock-api-mockito, org.mockito:mockito-all, and 2 more, deploys with jcl-over-slf4j, log4j-core, logback-core, org.apache.logging.log4j:log4j-api, Prometheus, and 3 more, and uses clickhouse-jdbc, H2 Database, kafka-clients, mssql-jdbc, mysql:mysql-connector-java, and 7 more. It has 100,266 written lines, with 144 test files.

Read on November 8, 2026, at commit 87be50e.

Repository: https://github.com/alibaba/canal

## Backend (/)

### The base

- **[org.springframework.boot:spring-boot-starter-web](https://seerepo.com/uses/orgspringframeworkboot-spring-boot-starter-web)**

### Data

- **clickhouse-jdbc**
- **[H2 Database](https://seerepo.com/uses/h2-database)**
- **kafka-clients**
- **[mssql-jdbc](https://seerepo.com/uses/mssql-jdbc)**
- **mysql:mysql-connector-java**
- **org.elasticsearch.client:elasticsearch-rest-client**
- **org.springframework.boot:spring-boot-starter-jdbc**
- **phoenix-core**
- **[PostgreSQL](https://seerepo.com/uses/postgresql)**
- **tablestore**
- **com.alibaba:druid**: 27 files
- **[Elasticsearch](https://seerepo.com/uses/elasticsearch)**: 14 files
- **[MySQL](https://seerepo.com/uses/mysql)**: 10 files · [admin/admin-web/pom.xml, line 1](https://github.com/alibaba/canal/blob/87be50e87686a3e8af08c368d0e1ffd1f59eb04a/admin/admin-web/pom.xml#L1)
- **org.apache.zookeeper:zookeeper**: 6 files
- **RabbitMQ**: 5 files
- **[Apache](https://seerepo.com/uses/apache)**: 3 files
- **org.apache.curator:curator-recipes**: 3 files
- **org.apache.kudu:kudu-client**: 3 files
- **org.apache.pulsar:pulsar-client**: 3 files
- **[Postgres](https://seerepo.com/uses/postgres)**: 3 files · [client-adapter/launcher/pom.xml, line 1](https://github.com/alibaba/canal/blob/87be50e87686a3e8af08c368d0e1ffd1f59eb04a/client-adapter/launcher/pom.xml#L1)
- **org.apache.hbase:hbase-client**: 2 files
- **[com.github.ben-manes.caffeine:caffeine](https://seerepo.com/uses/comgithubben-manescaffeine-caffeine)**: 1 file

### Data access

- **mybatis**
- **mybatis-spring**
- **org.springframework:spring-orm**

### Services

- **[Kafka](https://seerepo.com/uses/kafka)**: 7 files · [client/src/main/java/com/alibaba/otter/canal/client/kafka/KafkaCanalConnector.java, line 7](https://github.com/alibaba/canal/blob/87be50e87686a3e8af08c368d0e1ffd1f59eb04a/client/src/main/java/com/alibaba/otter/canal/client/kafka/KafkaCanalConnector.java#L7)

## Support (/)

### The base

- **Spring Boot**
- **[Spring](https://seerepo.com/uses/spring)**: 62 files
- **org.jboss.netty:netty**: 14 files

### Testing

- **org.springframework.boot:spring-boot-starter-test**
- **powermock-module-junit4**
- **junit:junit**: 109 files
- **org.powermock:powermock-api-mockito**: 2 files
- **org.mockito:mockito-all**: 1 file

### Deploy

- **jcl-over-slf4j**
- **[log4j-core](https://seerepo.com/uses/log4j-core)**
- **logback-core**
- **[org.apache.logging.log4j:log4j-api](https://seerepo.com/uses/orgapachelogginglog4j-log4j-api)**
- **[Prometheus](https://seerepo.com/uses/prometheus)**
- **simpleclient_hotspot**
- **[org.slf4j:slf4j-api](https://seerepo.com/uses/orgslf4j-slf4j-api)**: 143 files
- **[ch.qos.logback:logback-classic](https://seerepo.com/uses/chqoslogback-logback-classic)**: 2 files

### Tools

- **jsr305**
- **org.springframework.boot:spring-boot-configuration-processor**

### Other

- **com.google.guava:guava**
- **commons-beanutils**
- **commons-codec**
- **commons-io**
- **commons-lang**
- **jctools-core**
- **zstd-jni**
- **com.alibaba.fastjson2:fastjson2**: 32 files
- **[Google](https://seerepo.com/uses/google)**: 12 files
- **org.apache.httpcomponents:httpclient**: 10 files
- **javax.annotation:javax.annotation-api**: 7 files
- **com.googlecode.aviator:aviator**: 6 files
- **io.netty:netty-all**: 4 files
- **org.apache.commons:commons-compress**: 4 files
- **joda-time:joda-time**: 3 files
- **com.lmax:disruptor**: 1 file
- **org.apache.commons:commons-lang3**: 1 file
- **org.yaml:snakeyaml**: 1 file

## Frontend (admin/admin-ui)

### The base

- **[Vue](https://seerepo.com/uses/vue)**: 4 files

### Styles

- **Normalize.css**: 1 file

### Interface

- **[Element](https://seerepo.com/uses/element)**: 3 files
- **[nprogress](https://seerepo.com/uses/nprogress)**: 1 file

## Support (admin/admin-ui)

### The base

- **[vue-router](https://seerepo.com/uses/vue-router)**: 1 file

### Testing

- **@vue/test-utils**: 3 files
- **mockjs**: 2 files

### Tools

- **Babel**: 1 file

### Other

- **vuex**: 4 files
- **js-cookie**: 2 files
- **Axios**: 1 file
- **chalk**: 1 file
- **path-to-regexp**: 1 file

## Other repos with a similar stack

- [conductor-oss/conductor](https://seerepo.com/r/conductor-oss/conductor/built): org.springframework.boot:spring-boot-starter-web, kafka-clients, mysql:mysql-connector-java, org.elasticsearch.client:elasticsearch-rest-client, org.springframework.boot:spring-boot-starter-jdbc, PostgreSQL, Elasticsearch, MySQL, RabbitMQ, Postgres, com.github.ben-manes.caffeine:caffeine, Kafka, Spring, org.apache.logging.log4j:log4j-api, org.slf4j:slf4j-api · [Compare](https://seerepo.com/compare/alibaba/canal/vs/conductor-oss/conductor)
- [kestra-io/kestra](https://seerepo.com/r/kestra-io/kestra/built): H2 Database, kafka-clients, PostgreSQL, MySQL, RabbitMQ, Apache, Postgres, com.github.ben-manes.caffeine:caffeine, Vue, vue-router, jcl-over-slf4j, org.slf4j:slf4j-api, ch.qos.logback:logback-classic, Element, nprogress · [Compare](https://seerepo.com/compare/alibaba/canal/vs/kestra-io/kestra)
- [alibaba/nacos](https://seerepo.com/r/alibaba/nacos/built): org.springframework.boot:spring-boot-starter-web, H2 Database, org.springframework.boot:spring-boot-starter-jdbc, PostgreSQL, MySQL, Apache, Postgres, com.github.ben-manes.caffeine:caffeine, Spring Boot, jcl-over-slf4j, org.slf4j:slf4j-api, ch.qos.logback:logback-classic · [Compare](https://seerepo.com/compare/alibaba/canal/vs/alibaba/nacos)
- [chinabugotech/hutool](https://seerepo.com/r/chinabugotech/hutool/built): H2 Database, mssql-jdbc, PostgreSQL, com.alibaba:druid, MySQL, Apache, Postgres, Spring, log4j-core, org.slf4j:slf4j-api · [Compare](https://seerepo.com/compare/alibaba/canal/vs/chinabugotech/hutool)
- [jeecgboot/JeecgBoot](https://seerepo.com/r/jeecgboot/JeecgBoot/built): mssql-jdbc, mysql:mysql-connector-java, PostgreSQL, MySQL, Postgres, Spring, Vue, vue-router, nprogress · [Compare](https://seerepo.com/compare/alibaba/canal/vs/jeecgboot/JeecgBoot)
- [Stirling-Tools/Stirling-PDF](https://seerepo.com/r/Stirling-Tools/Stirling-PDF/built): org.springframework.boot:spring-boot-starter-web, H2 Database, PostgreSQL, Apache, Postgres, com.github.ben-manes.caffeine:caffeine, Spring, ch.qos.logback:logback-classic · [Compare](https://seerepo.com/compare/alibaba/canal/vs/Stirling-Tools/Stirling-PDF)

## Frequently asked questions

### What language is canal written in?

canal is written in Java, with 100,266 written lines.

### What framework does canal use?

canal is built with org.springframework.boot:spring-boot-starter-web, Spring Boot, Spring, org.jboss.netty:netty, Vue, and vue-router.

### What database does canal use?

canal stores its data in com.alibaba:druid, Elasticsearch, MySQL, org.apache.zookeeper:zookeeper, RabbitMQ, Apache, org.apache.curator:curator-recipes, org.apache.kudu:kudu-client, org.apache.pulsar:pulsar-client, Postgres, and org.apache.hbase:hbase-client and reaches it with mybatis, mybatis-spring, and org.springframework:spring-orm.

### What services does canal use?

canal uses clickhouse-jdbc, H2 Database, kafka-clients, mssql-jdbc, mysql:mysql-connector-java, org.elasticsearch.client:elasticsearch-rest-client, org.springframework.boot:spring-boot-starter-jdbc, phoenix-core, PostgreSQL, tablestore, com.github.ben-manes.caffeine:caffeine, and Kafka.

### Does canal have tests?

Yes. canal has 144 test files and is tested with org.springframework.boot:spring-boot-starter-test, powermock-module-junit4, junit:junit, org.powermock:powermock-api-mockito, org.mockito:mockito-all, @vue/test-utils, and mockjs.

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

The ones that share most of its stack: conductor-oss/conductor, kestra-io/kestra, and alibaba/nacos.

## 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.
