CloverETL is a Java based ETL framework which can be used to transform structured data. While using JAVA technology it allows for platform independence. It can be used standalone as an application run from command line or can be embedded into an application.
* internally represents all characters as 16bit (Unicode) - any character from any codepage can be represented
* converts from & to most common character sets (ASCII, UTF-8, ISO-8859-1,ISO-8859-2, etc)
* works with delimited or fix-length data records, each field can have different delimiter composed from several characters
* fields can have default values, handles NULL values
* cooperates with any database with JDBC driver
* transforming of the data is performed by independent components, each running as an independent thread - can utilize more than one CPU
* framework implements so called pipeline-parallelism - when data record is processed by component, it is immediately sent to the following component for additional processing.
* metadata describing structure of data files (records) can be read from XML
* transformation graphs can be read from XML
The whole framework is composed from more or less independent pieces which can be used in your application.