Skip to content

scriptella/scriptella-etl

Repository files navigation

Scriptella

Scriptella is an open-source, Java-based ETL (Extract-Transform-Load) tool for moving and transforming data between databases, files, and other systems. Use SQL or another language suited to each data source, while a small XML file orchestrates the workflow instead of a proprietary transformation language.

Project status

The latest release is Scriptella 1.3 (Java 8 target and preserved Maven/Ant packaging), published on July 17, 2026.

Scriptella 1.3 is available from GitHub Releases and Maven Central.

Requirements

Component Requirement
Java Java 8
Maven 3.6+ to build from source
Ant 1.10.17 for release packaging only

Getting Scriptella

Binary distribution

Download a published release from GitHub Releases or https://scriptella.org/download.html.

The binary ZIP includes scriptella.jar. Run an ETL file:

java -jar scriptella.jar path/to/file.etl.xml

Add JDBC drivers and other provider JARs with the connection classpath attribute as needed. See the tutorial and reference.

Quick start

Create people.csv next to scriptella.jar:

id,name
1,Ada
2,Grace

Then create csv-to-sql.etl.xml in the same directory:

<!DOCTYPE etl SYSTEM "http://scriptella.org/dtd/etl.dtd">
<etl>
    <connection id="input" driver="csv" url="people.csv"/>
    <connection id="output" driver="text" url="load.sql"/>

    <query connection-id="input">
        <script connection-id="output">
            INSERT INTO people (id, name) VALUES ($id, '$name');
        </script>
    </query>
</etl>

Run it from that directory:

java -jar scriptella.jar csv-to-sql.etl.xml
cat load.sql

The generated load.sql contains one INSERT statement per CSV row. The CSV driver reads the header row, so $id and $name refer to those columns. No database or JDBC driver is required.

First migration

The real power comes from nesting a target <script> inside a source <query> to transform or copy each row. For a complete MySQL-to-PostgreSQL example that writes directly to a database with JDBC parameter binding, see docs/first-migration.md. The tutorial has additional database and file integration examples.

Maven coordinates

Published artifacts use group ID org.scriptella (from 1.2 onward). Example for the core module:

<dependency>
  <groupId>org.scriptella</groupId>
  <artifactId>scriptella-core</artifactId>
  <version>1.3</version>
</dependency>

Drivers and tools modules follow the same version. Prefer the binary distribution or the all-in-one JAR when you need the full set of bundled providers without assembling modules yourself.

Build from source

# Module build and tests (primary path)
mvn clean install

# Optional: Ant packaging (Ant 1.10.17 for release dist / all-in-one JAR)
ant clean jar

Documentation

Packaged documentation may also appear under docs/ in distribution archives.

Support and contributions

Pull requests and well-scoped issue reports for compatibility, correctness, and maintenance work are welcome. Broad feature development is not currently the project focus.

Licensing

This software is licensed under the terms in the file named LICENSE in this directory (Apache License, Version 2.0).

Thank you for using Scriptella.

The Scriptella Project Team
https://scriptella.org

About

Scriptella is an open source ETL (Extract-Transform-Load) and script execution tool written in Java.

Topics

Resources

License

Stars

112 stars

Watchers

1 watching

Forks

Packages

 
 
 

Contributors

Languages