cargo-pipe

Crates.iocargo-pipe
lib.rscargo-pipe
version0.2.2
sourcesrc
created_at2021-08-04 02:36:57.57393
updated_at2022-02-26 21:41:35.667478
descriptionA command-line tool to generate and build data integration app using pipebase framework
homepagehttps://github.com/pipebase/pipebase
repositoryhttps://github.com/pipebase/pipebase
max_upload_size
id431304
size54,474
Li Yu (51yu)

documentation

README

cargo-pipe is a clap based command-line tool to generate and build pipebase app with manifest

Install Tools

install Rust and Cargo (Minimum Supported Version of Rust 1.54.0)

curl https://sh.rustup.rs -sSf | sh

install rustfmt

rustup component add rustfmt

install cargo-pipe CLI

cargo install cargo-pipe

Usage

cargo pipe --help

Quick Start

clone repository and go to resources directory

git clone https://github.com/pipebase/pipebase.git && \
cd pipebase/cargo-pipe/resources && \
cargo pipe new && \
cargo pipe validate -o -p && \
cargo pipe generate && \
cargo pipe build -o timer -r

run app

./timer

note that, any change to pipe.yml requires re-run validate, generate, build steps

Validation & Debug

validate manifest only

cargo pipe validate -o -p

build with debug flag

cargo pipe build -d
...
     Warning struct is never constructed: `Bar`
     Warning 1 warning emitted

fix the warning by remove objects section

@@ -23,13 +23,6 @@ pipes:
     config:
       ty: PrinterConfig
     upstreams: [ "timer1", "timer2" ]
-objects:
-  - ty: Bar
-    fields:
-      - name: bar1
-        ty: Integer
-      - name: bar2
-        ty: String

since manifest changed, re-generate and build

cargo pipe generate && \
cargo pipe build -d

Describe Manifest

list all pipes and objects

cargo pipe describe -a
...
    Describe pipes
      Result pipe: timer1, printer, timer2
    Describe objects
      Result objects: Bar

describe a pipe

cargo pipe describe -p timer1
...
    Describe pipe timer1
      Result
Name:   timer1
Type:   poller
Config: { type: TimerConfig, path: catalogs/timer1.yml }
Upstream: []

describe an object

cargo pipe describe -o Bar
...
    Describe object Bar
      Result
Type: Bar
Type Metas:
Fields:
Name   Type Metas
bar1    i32
bar2 String

describe pipelines cross a pipe

cargo pipe describe -l printer
...
    Describe pipelines for printer
      Result pipeline: timer2(u128) -> printer
      Result pipeline: timer1(u128) -> printer
Commit count: 948

cargo fmt