Chewdata
This application is an simple ETL in rust that can be use as a connector between systems
- It handle multiple formats : Json, Jsonl, CSV, Toml, XML, Yaml, Text
- It can read/write data from :
- Mongodb database
- S3/Minio with versionning & select
- Http(s) APIs with with some authenicators: Basic, Bearer, Jwt
- Local
- Relational DB like PSQL (
Not Yet
) - Message broker (
Not Yet
)
- It need only rustup
- No garbage collector
- Parallel work
- Multi platforms
- Use tera template in order to configure the actions for the data transformation
the target of this project is to simplify the work of developers and simplify the connection between system. The work is not finished but I hope it will be useful for you.
Getting started
Setup from source code
Requirement:
- Rust
- Docker and Docker-compose for testing the code in local
Commands to execute:
If all the test pass, the project is ready. read the Makefile in order to see, what kind of shortcut you can use.
If you want some examples to discover this project, go in this section ./examples
Run the ETL
If you run the program without parameters, the application will wait until you write json data. By default, the program write json data in the output and the program stop when you press multiple times the 'enter' key.
} }
Another example without etl configuration and with file in input
|
}
or
|
}
Another example, With a json etl configuration in argument
|
}
or
|
}
Another example, With etl file configuration in argument
|
}
or
|
}
It is possible to use alias and default value to decrease the configuration length
|
}
How to contribute
In progress...
After code modifications, please run all tests.