Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Reactive Graph

net.reactive-graph.io

This repository contains plugins for the Reactive Graph that allows to interoperate with other systems.

Reactive Graph is a reactive runtime based on a graph database, empowering everyone to build reliable and efficient software.


Build


List of Plugins

ProtocolDescriptionTechnology
HTTP + JSON-RPCSend HTTP requests and get HTTP responseshttps://github.com/reactive-graph/plugins-core/tree/main/plugins/http
GitClone and modify git repositorieshttps://github.com/reactive-graph/plugins-core/tree/main/plugins/git

Planned Plugins

ProtocolDescriptionStatusTechnology
GraphQLReactive Graph acts as client (send queries, send mutations, subscribe subscriptions)Not implementedhttps://docs.rs/gql_client/latest/gql_client/
MQTTReactive Graph acts as client (subscribing queues, send messages)Not implementedhttps://github.com/bytebeamio/rumqtt
AMQPReactive Graph acts as client (subscribing queues, send messages)Not implementedhttps://github.com/amqp-rs/lapin
TelegrafReactive Graph produces metricsNot implementedhttps://github.com/maxmindlin/telegraf-rust

Plugin HTTP

This plugin provides a reactive http client integration. Using entities of type http requests via HTTP can be made.

With this plugin it's possible to integrate external services into your home automation.

Type System

Entity Types

NamePropertyData TypeSocket Type
Httpurlstringinput
methodstringinput
request_headersobjectinput
payloadobjectinput
response_headersobjectoutput
resultobjectoutput
statusnumberoutput
JsonRpcurlstringinput
json_rpc_versionstringinput
methodstringnone
paramsobjectinput
resultobjectoutput
errorobjectoutput

Entity Behaviours

NameDescription
HttpSends a HTTP request with the given HTTP method to the given URL entity using the given headers and payload.
The trigger is the property payload even if there is no payload.

Platform Compatibility

PlatformCompatibility
Linux
MacOS
Windows

Plugin Git

This plugin provides git functionality. You can clone a repository, fetch, pull and fast-forward.

Component

PropertyComponentDataTypeSocketTypeDescription
namebase__namedStringnoneThe name.
descriptionbase__describableStringnoneThe description.
urlhttp__urlStringinputThe remote url.
filefile_fileStringinputThe local path.
branchgit__gitStringinputThe git branch name. Executes a git checkout on change.
remote_namegit__gitStringinputThe name of the remote (default: origin).
remote_branchgit__gitStringinputThe name of the remote branch
triggergit__gitBoolinputClone or pull
fetchgit__gitBoolinputFetch
fast_forwardgit__gitBoolinputFast-forward
pushgit__gitBoolinputPushes to the given remote (by default origin)
merge_fromgit__gitStringinputMerges the given branch into the current branch

Platform Compatibility

PlatformCompatibility
Linux
MacOS
Windows

Credits

This plugin integrates with https://crates.io/crates/git2

MIT License

Copyright (c) 2011-2024 Andreas Schaeffer, the Reactive Graph Contributors and the Inexor Collective.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.