ALL contributions are welcome:
- if you want to report a bug, please create a github issue following some basic guidelines.
- if you want request a feature, please create a github issue following some basic guidelines.
- if you want to submit a bugfix or new feature, please create a pull request.
git clone git@github.com:txpipe/oura.git
cd oura
Create a daemon.toml config file to run daemon.toml
[source]
type = "N2N"
peers = ["preprod-node.world.dev.cardano.org:30000"]
[chain]
type = "preprod"
[intersect]
type = "Tip"
[sink]
type = "Stdout"
chain peers
Mainnet relays-new.cardano-mainnet.iohk.io:3001
Preprod preprod-node.world.dev.cardano.org:30000
Preview preview-node.world.dev.cardano.org:30002
after config execute cargo command to run
cargo run -- daemon --config daemon.toml
with features flags
cargo run --features=sink-rabbitmq -- daemon --config daemon.toml
run sink dependencies
docker compose -f examples/rabbitmq/docker-compose.yaml up -d
This project is licensed under the Apache-2.0 license.
All contributions to the project will be licensed under the same terms. Please make sure you agree with these terms before working on your contribution.
Please see the LICENSE file for more details.
The architecture of Oura is extensible by design. There's no strict bound to the set of sources, filters and sinks that can be included. One might be tempted to add new "plugins" for each particular use-case, but this would eventually turn the codebase unmaintainable.
To avoid an unbounded growth, we try to keep the set of built-in plugins limited only to general-purpose use-cases. If you have a very particular need, our recommendation is to create a new crate, add Oura as a dependency and fill the gaps required for your use-case.
As a rule of thumb, any feature within the categories of the following list is within the scope and contributions on the subject will likely be included in the codebase:
- Sources that provide on-chain data (blocks, transactions, metadata, etc)
- Sources that provide mempool data (pending transactions)
- Sinks that output to well-known event-processing platforms (eg: Kafka)
- Sinks that output to well-known message-queues platforms (eg: RabbitMQ)
- Sinks that output to well-known no-sql platforms (eg: Elasticsearch)
- Sinks that output to well-known FaaS platforms (eg: AWS Lambda)
- Filters that enrich event data with well-known external metadata
Please follow these basic guidelines when reporting a bug:
- Create a new github issue
- Provide a description of the symptoms
- Provide instructions to reproduce the scenario
- Provide a description of your current setup (versions, configuration, environment)
Please follow these basic guidelines when filling a feature request:
- Ensure that your request is within the scope of the project.
- Create a new github issue
- Provide a description of your use case (how would you use the new feature)
All PRs are welcome, but please take into account these requirements for your contribution to be considered by the maintainers:
- Ensure that your change is within the scope of the project.
- Fork the project, make your changes and create a PR in the upstream repository.
- Keep the scope of the PR as small as possible.
- Don't include changes unrelated to the scope of the PR, no matter how small or trivial they might seem.
- After you submit your pull request, verify that all status checks are passing.