aws greengrass nucleus in Rust programming language (unofficial)
What I cannot create, I do not understand.
Know how to solve every problem that has been solved.
———— Richard Feynman
on his blackboard at the time of death in February 1988;
- cargo run -- --version
aws-greengrass-nucleus 0.0.3
- cargo run -- --help
aws-greengrass-nucleus 0.0.3
aws greengrass nucleus in Rust (unofficial)
USAGE:
aws-greengrass-nucleus [OPTIONS] --thing-name <THING_NAME>
OPTIONS:
--aws-region <AWS_REGION>
[default: ap-southeast-1]
--component-default-user <COMPONENT_DEFAULT_USER>
--deploy-dev-tools
...
- cargo run -- --aws-region ap-southeast-1 --thing-name coreName --component-default-user ggc_user:ggc_group --provision
same as original nucleus
The Greengrass nucleus component (aws.greengrass.Nucleus) is a mandatory component and the minimum requirement to run the AWS IoT Greengrass Core software on a device.
- Minimum 128 MB disk space available for the AWS IoT Greengrass Core software. If you use the OTA update agent, the minimum is 400 MB.
- Minimum 128 MB RAM allocated to the AWS IoT Greengrass Core software. With stream manager enabled, the minimum is 198 MB RAM.
- memory,
The maximum amount of RAM (in kilobytes) that each component's processes can use on the core device.
core-device:
- list-core-devices
- get-core-device
- delete-core-device
component:
- create-component-version
- describe-component
- delete-component
- get-component
- get-component-version-artifact
- list-component-versions
- list-components
- resolve-component-candidates
deployments:
- create-deployment
- list-deployments
- get-deployment
- cancel-deployment
misc:
- list-effective-deployments
- list-installed-components
- list-tags-for-resource
- tag-resource
- untag-resource
- open documentation:
cargo doc --open
- Compile local packages and all of their dependencies:
cargo b(uild)
- Release build:
cargo b --release
- Cross-compile:
rustup target list rustup target add cargo b --target <>
- Cross-compile for Raspberry:
- Cross-compile for OpenWRT:
- Fast check:
cargo c(heck)
- Run:
cargo run (-- your-args)
- Test:
cargo test
- Documentation tests:
https://doc.rust-lang.org/rustdoc/write-documentation/documentation-tests.html#documentation-tests
- Publish:
cargo publish
see architecture.md and design.md
The following example shows how an AWS IoT Greengrass device interacts with the AWS IoT Greengrass cloud service and other AWS services in the AWS Cloud.