Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Standard input/output support 2: Rust SDK stdout impl/examples/docs #4512

Merged
merged 8 commits into from
Dec 14, 2023

Conversation

teh-cmc
Copy link
Member

@teh-cmc teh-cmc commented Dec 13, 2023

Allow the Rust SDK to stream RRD data to stdout.

Checks:

  • just py-build && echo 'hello from stdin!' | cargo run -p stdio | rerun -

Part of a small PR series to add stdio streaming support to our Viewer and SDKs:

Checklist

  • I have read and agree to Contributor Guide and the Code of Conduct
  • I've included a screenshot or gif (if applicable)
  • I have tested the web demo (if applicable):
    • Full build: app.rerun.io
    • Partial build: app.rerun.io - Useful for quick testing when changes do not affect examples in any way
  • The PR title and labels are set such as to maximize their usefulness for the next release's CHANGELOG

@teh-cmc teh-cmc added 🦀 Rust API Rust logging API 🧑‍💻 dev experience developer experience (excluding CI) include in changelog do-not-merge Do not merge this PR labels Dec 13, 2023
@teh-cmc teh-cmc changed the base branch from main to cmc/stdio_1_viewer December 13, 2023 15:19
@teh-cmc teh-cmc changed the title Standard input/output support 1: Rust SDK stdout impl/examples/docs Standard input/output support 2: Rust SDK stdout impl/examples/docs Dec 13, 2023
@teh-cmc teh-cmc force-pushed the cmc/stdio_2_rust branch 2 times, most recently from 52d7156 to c80d18b Compare December 13, 2023 19:38
@teh-cmc teh-cmc force-pushed the cmc/stdio_1_viewer branch 3 times, most recently from c2b3750 to 634f7ff Compare December 14, 2023 06:23
@teh-cmc teh-cmc force-pushed the cmc/stdio_2_rust branch 2 times, most recently from 4d7140a to 98d62d7 Compare December 14, 2023 06:37
@teh-cmc teh-cmc marked this pull request as ready for review December 14, 2023 06:38
Copy link
Member

@Wumpf Wumpf left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice!!
Sample works well and is easy to understand

Comment on lines +46 to +48
///
/// `None` indicates stdout.
path: Option<PathBuf>,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

... you could also have used an enum that makes this more obvious than reinterpreting the meaning of None

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Eh, I'd have gone there if it was part of the API but it's just some private field for debugging; not worth it imo.

@teh-cmc teh-cmc removed the do-not-merge Do not merge this PR label Dec 14, 2023
Base automatically changed from cmc/stdio_1_viewer to main December 14, 2023 17:11
teh-cmc added a commit that referenced this pull request Dec 14, 2023
Add a `stdin` source to the viewer so it can stream data in from
standard input.

We make `stdin` an explicit input (`rerun -`) like in the good old days,
to avoid shady behavior in non-TTY and other esoteric environment (crazy
WSL setups, etc). Trust me, it gets quite insane...

Checks:
- [x] `rerun` works
- [x] `rerun -` blocks
- [x] `rerun - < data.rrd` works
- [x] `cat data.rrd | rerun -` works
- [x] `rerun < data.rrd` works but does nothing
- [x] `cat data.rrd | rerun` works but does nothing
- [x] no-TTY & other esoteric environments don't go completely off the
rails

---

Part of a small PR series to add stdio streaming support to our Viewer
and SDKs:
- #4511
- #4512 
- #4513
- #4514
@teh-cmc teh-cmc merged commit 6e49d84 into main Dec 14, 2023
16 of 23 checks passed
@teh-cmc teh-cmc deleted the cmc/stdio_2_rust branch December 14, 2023 17:13
teh-cmc added a commit that referenced this pull request Dec 14, 2023
…#4513)

Allow the Python SDK to stream RRD data to stdout.

Checks:
- [x] `just py-build && echo 'hello from stdin!' | python
examples/python/stdio/main.py | rerun -`

---

Part of a small PR series to add stdio streaming support to our Viewer
and SDKs:
- #4511
- #4512 
- #4513
- #4514
teh-cmc added a commit that referenced this pull request Dec 14, 2023
…4514)

Allow the C++ SDK to stream RRD data to stdout.

Checks:
- [x] `just py-build && just cpp-build-examples && echo 'hello from
stdin!' | ./build/debug/examples/cpp/stdio/example_stdio | rerun -`

---

Part of a small PR series to add stdio streaming support to our Viewer
and SDKs:
- #4511
- #4512 
- #4513
- #4514
@teh-cmc teh-cmc mentioned this pull request Dec 14, 2023
5 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🧑‍💻 dev experience developer experience (excluding CI) include in changelog 🦀 Rust API Rust logging API
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants