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

Open
wants to merge 23 commits into
base: release-0.2
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
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
2 changes: 2 additions & 0 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[build]
rustdocflags = ["-D", "warnings"]
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, 1.81]

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
43 changes: 39 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,39 @@ 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.'cfg(target_arch = "wasm32")'.dependencies]
uuid = { version = "1.13.1", default-features = false, features = ["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