Open-source ELT CLI for moving data between databases, file systems, APIs, and data lakes
- Stars861
- Forks70
- Open Issues46
GPL-3.0
- Go
- Shell
- Python

About Sling
Sling is a free, open-source CLI for moving data with the Extract and Load (EL) approach. It is built for small to medium volume pipelines and handles database to database, file system to database, database to file system, and API based movement in either direction.
Pipelines can use custom SQL as a source stream, YAML or JSON configuration that fits cleanly in git, and environment variables for connections and config values. The sling conns subcommand manages, views, tests, and discovers connections, replication runs across many tables with wildcard patterns, and transformations include flattening nested fields into columns.
Sling ships as a single binary built in Go, with pre-built downloads for macOS, Linux, and Windows. It reads your existing dbt connections and connects to databases, data lakes such as Iceberg and Athena, file systems, and formats including CSV, Parquet, XLSX, JSON, Avro, and XML.
Key features
- Move data between databases, file systems, APIs, and data lakes
- Use custom SQL as a source stream
- YAML or JSON pipeline configuration
- Manage, test, and discover connections from the CLI
- Replication with wildcard table patterns
Details
- First released
- 2020
- Platforms
- Mac · Linux · Windows · CLI
- Deployment
- Single Go binary
- Configuration
- YAML · JSON · environment variables
- Connectors
- Databases · files · APIs · data lakes
- Formats
- CSV · Parquet · XLSX · JSON · Avro · XML
