Skip to content

Update branch release 0.2 #69

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

Merged
merged 29 commits into from
May 16, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
57aeff2
Add CI status badges to README (#25)
mxgrey Sep 13, 2024
72fcd72
Add derive macro for DeliveryLabel (#30)
mxgrey Nov 14, 2024
85501df
Introduce Split operation (#33)
mxgrey Nov 27, 2024
d074da8
Fix 1.75 build failure / add CI (#34)
luca-della-vedova Nov 27, 2024
ca95c2d
Expand lifetimes of SplitBuilder (#36)
mxgrey Dec 4, 2024
0def9db
use matrix testing (#39)
koonpeng Dec 5, 2024
3d5425d
Fix detachment (#40)
mxgrey Dec 6, 2024
1a0de67
fix broken doc link (#41)
koonpeng Dec 13, 2024
013dc62
First draft of workflow diagrams (#27)
koonpeng Jan 9, 2025
9175367
Message registry (#50)
koonpeng Jan 20, 2025
e430c14
Lock in specific features for uuid on wasm builds (#54)
mxgrey Feb 14, 2025
0ee3fe2
avoid conflict in take() (#55)
koonpeng Feb 18, 2025
b66535c
Support for dynamic dictionaries of buffers (#52)
mxgrey Feb 21, 2025
7f3de4f
Support buffers and loops in diagrams (#51) (#63)
koonpeng Mar 27, 2025
030510f
Section builders and templates (#58)
koonpeng Apr 22, 2025
152228c
Merge branch 'main' into xiyu/release-0.1
xiyuoh Apr 23, 2025
ebcfda6
Merge branch 'xiyu/release-0.1' into xiyu/release-0.2
xiyuoh Apr 23, 2025
2e5e716
Cleanup App::world getters
xiyuoh Apr 23, 2025
f3c961a
Style
xiyuoh May 2, 2025
26032b2
Style
xiyuoh May 2, 2025
4e8b224
Style again
xiyuoh May 2, 2025
2598131
Update CI to 1.76
xiyuoh May 2, 2025
85d05e7
Merge branch 'xiyu/release-0.1' into xiyu/release-0.2
xiyuoh May 2, 2025
af7d753
fix wasm build (#73)
koonpeng May 15, 2025
c8449fc
fix NamespacedOperation schema (#72)
koonpeng May 15, 2025
4f9e7c4
Merge branch 'main' into xiyu/release-0.1
mxgrey May 16, 2025
f1d3726
Use Rust stable -- no need for older versions of Rust
mxgrey May 16, 2025
e716f45
Merge pull request #68 from open-rmf/xiyu/release-0.1
mxgrey May 16, 2025
4d2c4a2
Merge remote-tracking branch 'origin/release-0.1' into xiyu/release-0.2
mxgrey May 16, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
[build]
rustdocflags = ["-D", "warnings"]

[target.wasm32-unknown-unknown]
rustflags = '--cfg getrandom_backend="wasm_js"'
17 changes: 15 additions & 2 deletions .github/workflows/ci_linux.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,18 +16,31 @@ env:

jobs:
build:
strategy:
matrix:
rust-version: stable

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3

- name: Setup rust
run: rustup default ${{ matrix.rust-version }}

- name: Build default features
run: cargo build
run: cargo build --workspace
- name: Test default features
run: cargo test
run: cargo test --workspace

- name: Test diagram
run: cargo test --workspace -F=diagram

- name: Build single_threaded_async
run: cargo build --features single_threaded_async
- name: Test single_threaded_async
run: cargo test --features single_threaded_async

- name: Build docs
run: cargo doc --all-features

8 changes: 6 additions & 2 deletions .github/workflows/ci_windows.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,15 @@ jobs:
shell: powershell

- name: Build default features
run: cargo build
run: cargo build --workspace
shell: cmd

- name: Test default features
run: cargo test
run: cargo test --workspace
shell: cmd

- name: Test diagram
run: cargo test --workspace -F=diagram
shell: cmd

- name: Build single_threaded_async
Expand Down
44 changes: 40 additions & 4 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,15 @@ description = "Reactive programming and workflow execution for bevy"
readme = "README.md"
repository = "https://github.com/open-rmf/bevy_impulse"
keywords = ["reactive", "workflow", "behavior", "agent", "bevy"]
categories = ["science::robotics", "asynchronous", "concurrency", "game-development"]
categories = [
"science::robotics",
"asynchronous",
"concurrency",
"game-development",
]

[dependencies]
bevy_impulse_derive = { path = "macros", version = "0.0.1" }
bevy_impulse_derive = { path = "macros", version = "0.0.2" }
bevy_ecs = "0.14"
bevy_utils = "0.14"
bevy_hierarchy = "0.14"
Expand All @@ -25,10 +30,9 @@ async-task = { version = "4.7.1", optional = true }
# bevy_tasks::Task, so we're leaving it as a mandatory dependency for now.
bevy_tasks = { version = "0.14", features = ["multi_threaded"] }

arrayvec = "0.7"
itertools = "0.13"
smallvec = "1.13"
tokio = { version = "1.39", features = ["sync"]}
tokio = { version = "1.39", features = ["sync"] }
futures = "0.3"
backtrace = "0.3"
anyhow = "1.0"
Expand All @@ -42,8 +46,40 @@ thiserror = "1.0"
bevy_core = "0.14"
bevy_time = "0.14"

schemars = { version = "0.8.21", optional = true }
serde = { version = "1.0.210", features = ["derive", "rc"], optional = true }
serde_json = { version = "1.0.128", optional = true }
cel-interpreter = { version = "0.9.0", features = ["json"], optional = true }
tracing = "0.1.41"
strum = { version = "0.26.3", optional = true, features = ["derive"] }
semver = { version = "1.0.24", optional = true }

[target.wasm32-unknown-unknown.dependencies]
uuid = { version = "1.13.1", default-features = false, features = ["js"] }
getrandom = { version = "0.3.3", features = ["wasm_js"] }

[features]
single_threaded_async = ["dep:async-task"]
diagram = [
"dep:cel-interpreter",
"dep:schemars",
"dep:semver",
"dep:serde",
"dep:serde_json",
"dep:strum",
]

[dev-dependencies]
async-std = { version = "1.12" }
test-log = { version = "0.2.16", features = [
"trace",
], default-features = false }

[workspace]
members = ["examples/diagram/calculator"]

[[bin]]
name = "generate_schema"
path = "src/diagram/generate_schema.rs"
required-features = ["diagram"]
doc = false
5 changes: 5 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
[![style](https://github.com/open-rmf/bevy_impulse/actions/workflows/style.yaml/badge.svg)](https://github.com/open-rmf/bevy_impulse/actions/workflows/style.yaml)
[![ci_linux](https://github.com/open-rmf/bevy_impulse/actions/workflows/ci_linux.yaml/badge.svg)](https://github.com/open-rmf/bevy_impulse/actions/workflows/ci_linux.yaml)
[![ci_windows](https://github.com/open-rmf/bevy_impulse/actions/workflows/ci_windows.yaml/badge.svg)](https://github.com/open-rmf/bevy_impulse/actions/workflows/ci_windows.yaml)
[![ci_web](https://github.com/open-rmf/bevy_impulse/actions/workflows/ci_web.yaml/badge.svg)](https://github.com/open-rmf/bevy_impulse/actions/workflows/ci_web.yaml)

# Reactive Programming for Bevy

This library provides sophisticated [reactive programming](https://en.wikipedia.org/wiki/Reactive_programming) for the [bevy](https://bevyengine.org/) ECS. In addition to supporting one-shot chains of async operations, it can support reusable workflows with parallel branches, synchronization, races, and cycles. These workflows can be hierarchical, so a workflow can be used as a building block by other workflows.
Expand Down
Loading