{"repo":"mattlianje/etl4s","free":true,"listed":false,"github":"https://github.com/mattlianje/etl4s","clone":"git clone https://github.com/mattlianje/etl4s.git","description":"Powerful, whiteboard-style ETL","language":"Scala","stars":76,"topics":["etl","functional-programming","streaming","big-data","data-engineering"],"license":"Apache-2.0","category":"data-pipelines","readme_excerpt":"part of c6 etl4s Powerful, whiteboard-style ETL A lightweight, zero-dependency library for writing type-safe, beautiful ✨🍰 data flows in functional Scala. Battle-tested at Instacart Features - Declarative, typed pipeline endpoints - Use Etl4s.scala like a header file - Type-safe, compile-time checked - Config-driven by design - Easy, monadic composition of pipelines - Built-in retry/failure handling - Automatic tracing - Drop-in telemetry - Data lineage visualization Installation etl4s is on MavenCentral and cross-built for Scala, 2.12, 2.13, 3.x Or try in REPL: All you need: Quick Example Why etl4s? - Ultimately, these nodes and pipelines are just reifications of functions and values with a few extra niceties. - Chaotic, framework-coupled ETL codebases that grow without an imposed discipline drive dev teams and data orgs to their knees. - etl4s is a lightweight DSL to enforce discipline, type-safety, and reuse of pure functions - and see functional ETL for what it is... and could be. But seriously, why etl4s? Why not raw functions?? - Clean, easy to edit graphs : Raw function composition can obscure the high-level flow of data and monadic-stacks, although mightily useful and time-tested, don't impose a strict discipline on assignment and creating new bindings. etl4s uses a declarative DSL ( , & , & ) to define pipelines as explicit, type-safe graphs. This makes your data flows easy to read, reason about, and modify: like a whiteboard diagram. - Reusable, typed endpoints : P","default_branch":null,"files":null,"tree":[],"storefront":"/r/mattlianje","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/mattlianje/etl4s/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}