diff options
author | Matthias Beyer <matthias.beyer@ifm.com> | 2022-06-21 16:41:14 +0200 |
---|---|---|
committer | Matthias Beyer <matthias.beyer@ifm.com> | 2022-08-30 13:54:48 +0200 |
commit | 19e69d10d3c2643e30744c3912c0d2646414d119 (patch) | |
tree | 319da38a089ba6af006b1a8a29ca206f7d820c18 /crates/core | |
parent | 08a32f3294d65b4011e54838fc67c792cf8f3ff0 (diff) |
Streamline name to "thin-edge.io"
Signed-off-by: Matthias Beyer <matthias.beyer@ifm.com>
Diffstat (limited to 'crates/core')
-rw-r--r-- | crates/core/tedge_api/goals.md | 44 |
1 files changed, 22 insertions, 22 deletions
diff --git a/crates/core/tedge_api/goals.md b/crates/core/tedge_api/goals.md index f39c4964..fefef3f0 100644 --- a/crates/core/tedge_api/goals.md +++ b/crates/core/tedge_api/goals.md @@ -19,36 +19,36 @@ _This section is meant to be read as if the feature was_ already _implemented._ ----- -ThinEdge is an edge focused IoT framework. At its core it serves to bridge the +thin-edge.io is an edge focused IoT framework. At its core it serves to bridge the gap between devices and the cloud. As it is meant to run on low-resources devices it's core architecture supports that. As such, it is built upon a message passing router with a modular approach for extending its functionality through plugins. -ThinEdge can thus be understood as being a common-core of a message passing router +thin-edge.io can thus be understood as being a common-core of a message passing router with a collection of plugins that ultimately define what it actually _does_. Plugins come in two forms: -- Run-time & external, which are provided to Thin-Edge and meant to +- Run-time & external, which are provided to thin-edge.io and meant to interoperate with it specifically through stdin/stdout or some other well-specified interface (cf. external plugins further down) - These are for example custom built executables that a user provides and - wishes to not integrate into ThinEdge for various reasons (e.g. language - differences or license) -- Compile-time & built-in, which are compiled into the actual ThinEdge binary - and written in Rust. + wishes to not integrate into thin-edge.io for various reasons (e.g. + language differences or license) +- Compile-time & built-in, which are compiled into the actual thin-edge.io + binary and written in Rust. - These offer the advantage of simplifying deployment as well as assurances w.r.t. the messages (i.e. changes) Both ways are _functionally equivalent_ and _support the same features_. We aim to provide plugins for all common server and use-cases, see further down -if you wish to extend Thin-Edge yourself. +if you wish to extend thin-edge.io yourself. ## Configuring your plugins -ThinEdge is on its own merely a collection of plugin kinds, and requires a +thin-edge.io is on its own merely a collection of plugin kinds, and requires a configuration to do any useful work. A common configuration includes a cloud mapper, some device management plugins as well as some data sources. @@ -93,7 +93,7 @@ its needs and abilities. Nonetheless some parts are probably more common: receives a 'Restart "nginx" service' message it needs to be configured to tell it where to find the destination for it. -Once you have this configuration file, you can go on and start Thin-Edge +Once you have this configuration file, you can go on and start thin-edge.io. ## Starting Thin-Edge @@ -195,8 +195,8 @@ See `message::Message` for possible values. ------- -At the heart of these choices lies the idea of making sure that using ThinEdge -is precise, simple, and hard to misuse. +At the heart of these choices lies the idea of making sure that using +thin-edge.io is precise, simple, and hard to misuse. - In the above example, the `heartbeat` service kind would check if the targets are actually existing plugins it could check the heartbeat on _before_ the @@ -276,8 +276,8 @@ message kinds are forward compatible. Meaning that new kinds of messages may be received but simply rejected if unknown. Messages conversations are also asynchronous, meaning that upon receiving a -message ThinEdge might not reply. (This does not preclude the transport layer -to assure that the message has been well received) +message thin-edge.io might not reply. (This does not preclude the transport +layer to assure that the message has been well received) This has two reasons: @@ -294,23 +294,23 @@ a response. This is left as a future addition. _Note: 'Plugins' is simply a working name for now. We are free to rename this to 'Extension' or any other name we think is good._ -Plugins are what makes ThinEdge work! They receive messages and execute their -specific action if applicable. +Plugins are what makes thin-edge.io work! They receive messages and execute +their specific action if applicable. This part is split into two parts: PluginBuilders and Plugins themselves. ### PluginBuilders A `PluginBuilder` is a Rust struct that implements `PluginBuilder`. They are the -sole sources of plugin kinds in ThinEdge. (This is not a limitation for +sole sources of plugin kinds in thin-edge.io. (This is not a limitation for proprietary and non-rust plugins, read further to see how those are handled.) -They are registered at startup and hardcoded into the ThinEdge binary. +They are registered at startup and hardcoded into the thin-edge.io binary. ### Plugins A Plugin is a Rust struct that implements `Plugin`. It is clear that requiring -all users who wish to extend ThinEdge to learn and use Rust is a _bad idea_. To -make sure those users also get a first class experience special kinds of +all users who wish to extend thin-edge.io to learn and use Rust is a _bad idea_. +To make sure those users also get a first class experience special kinds of plugins are bundled per default: `stdio-external`, `http-external`. (The specific list will surely evolve over time.) These get instantiated like any other with the exception that it is expected that all messages are forwarded, @@ -331,8 +331,8 @@ situation like a pure-Rust plugin would have. Playing to Rust's strengths makes for better maintainable software. Using Traits to specify behaviour and "plain old Rust objects" also make the messages -clear. As ThinEdge is a specialized piece of software, this should be embraced -to deliver on an amazing experience. +clear. As thin-edge.io is a specialized piece of software, this should be +embraced to deliver on an amazing experience. Alternatives could include: |