Philipp Oppermann
4ee14a83e0
Merge pull request #57 from dora-rs/c-node-api
Create a staticlib with a node API for C
3 years ago
Philipp Oppermann
5d334a4c4d
Add docs and safety annotations to the functions of the dora node C API
3 years ago
Philipp Oppermann
b312f4123c
Document manual build instructions
3 years ago
Philipp Oppermann
97ba06c9ef
Compile operator with `-fPIC`
3 years ago
Philipp Oppermann
704720da08
Link `dl`
3 years ago
Philipp Oppermann
a2d24dd2d5
Move example build to separate CI job
3 years ago
Philipp Oppermann
1b58dff729
Add pthread support during linking
3 years ago
Philipp Oppermann
cc83da6bb0
Add a README to `c-dataflow` example
3 years ago
Philipp Oppermann
9d757e4719
Link rt
3 years ago
Philipp Oppermann
3c98247cb3
Remove canary value used for debugging
3 years ago
Philipp Oppermann
472e52a8c3
Remove old `c-operator` example, which is now merged into `c-dataflow`
3 years ago
Philipp Oppermann
59fe9c33b1
Run C Dataflow example on CI
3 years ago
Philipp Oppermann
74fe6700b4
Run cargo fmt
3 years ago
Philipp Oppermann
3fa0c4bf81
Add a `c-dataflow` example
3 years ago
Philipp Oppermann
4e6b786fa1
Add a node_api.h header file
3 years ago
Philipp Oppermann
0d2394a5eb
Fix: Use `size_t` instead of `int` for length arguments
3 years ago
Philipp Oppermann
4b9807735f
Merge branch 'main' into c-node-api
3 years ago
Philipp Oppermann
a6781fd4a9
Canoncicalize node path before launching it
3 years ago
Philipp Oppermann
bad8d30a5f
Split coordinator binary into lib.rs and main.rs
Allows using the `run` function from tests and examples.
3 years ago
Philipp Oppermann
5004aa9d6e
Specify a license for the node-api-c crate
3 years ago
Philipp Oppermann
b1f7b19c96
Merge pull request #52 from dora-rs/stop-operation
Allow operators to stop themselves
3 years ago
Philipp Oppermann
7c801fba2f
Merge branch 'main' into stop-operation
3 years ago
Philipp Oppermann
b849d31496
Rename operator API header file to operator_api.h
3 years ago
Philipp Oppermann
3287761393
Mark the C node API functions as no_mangle
3 years ago
Xavier Tao
f568b3d9f1
Merge pull request #60 from messense/patch-1
Fix maturin version requirement
3 years ago
messense
0818720946
Fix maturin version requirement
3 years ago
Philipp Oppermann
7cc3b1c5c2
Merge pull request #59 from dora-rs/fix-clippy
Resolve clippy warnings
3 years ago
Philipp Oppermann
b77e6a1049
Merge pull request #58 from dora-rs/ci-annotations
Use `actions-rs/cargo` to display errors/warnings in GitHub UI
3 years ago
Xavier Tao
c49c80f514
Merge pull request #56 from dora-rs/pyo3-traceback
Recover the `traceback` from `PyErr` and use `PyBytes` as input
3 years ago
Philipp Oppermann
dbf189e239
Resolve clippy warnings
3 years ago
Philipp Oppermann
9d3b500ce8
Use `actions-rs/cargo` to display errors/warnings in GitHub UI
3 years ago
Philipp Oppermann
d1a256a47a
Mark most functions as unsafe since they deref the given pointers
3 years ago
Philipp Oppermann
128922ac65
Remove error status for Python in favor of native Python errors
3 years ago
Philipp Oppermann
b2577acf14
Implement API functions for reading inputs and sending outputs
3 years ago
haixuanTao
bf2b9fceb3
impl `traceback` that get traceback from `PyErr`
3 years ago
Philipp Oppermann
370cadee6b
Start creating a staticlib with a node API for C
3 years ago
Philipp Oppermann
474c1e2465
Remove unused dependency
3 years ago
Philipp Oppermann
e654f2e868
Rename DoraStatus.OK to CONTINUE to be consistent
Co-authored-by: Xavier Tao <tao.xavier@outlook.com>
3 years ago
haixuanTao
f016158e6d
Recover the `traceback` from `PyErr` and use `PyBytes` as input
Recovering the traceback allow to see on which line did Python failed.
Using Pybytes as input make the python input type `bytes` instead of a
List of `u8`.
3 years ago
Philipp Oppermann
f182330c5e
Increase sink timeout to 5 seconds
We're now launching the nodes/operators using `cargo run`, which can lead to a bit of delay. We don't want to trigger the timeout in this case.
3 years ago
Philipp Oppermann
f1a8da7ee1
Fix: Don't wait for dora timer tasks in coordinator
Instead, exit as soon as all nodes and operators are done. The timer tasks will never finish.
3 years ago
Philipp Oppermann
825e9a8d7b
Allow operators to stop themselves through a special return value
Useful for source operators that take timers as inputs. Without an explicit stop instructions, they would always run forever.
3 years ago
Philipp Oppermann
41afaed2c1
Add some more log messages
3 years ago
Philipp Oppermann
e7eeafa067
Merge pull request #51 from dora-rs/timer-input
Implement runtime-provided periodic timer input for source operators
3 years ago
Philipp Oppermann
047252be6b
Avoid intermediate allocations by implementing Display instead of ToString
3 years ago
Philipp Oppermann
7158ff2d38
Send `InputsStopped` event only once, after all inputs are closed
Ensures that the event is only sent after all input straems are exhausted. This avoids a potential race when there are multiples inputs.
3 years ago
Philipp Oppermann
e677adbd58
Keep operators that use dora timers as inputs running indefinitely
The dora timers produce values forever. We only want to stop operators when all their input streams are closed.
3 years ago
Philipp Oppermann
ed59e69eca
Fix coordinator run instructions in README
3 years ago
Philipp Oppermann
9b711d3964
Fix paths in `mini-dataflow.yml` example
3 years ago
Philipp Oppermann
20501ca461
Send dora timer messages from coordinator
3 years ago