Sling logo

Sling

Open-source ELT CLI for moving data between databases, file systems, APIs, and data lakes

Open Source Alternative to
Repository activity
  • Stars861
  • Forks70
  • Open Issues46
License

GPL-3.0

Languages
  • Go
  • Shell
  • Python
Sling screenshot

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