Skip to main content

Common tooling for Brinkhaus industrial applications

Project description

brinkhaustools

Multi-language infrastructure toolkit for Brinkhaus industrial applications.

What is brinkhaustools?

brinkhaustools provides reusable components for industrial monitoring and control applications in Python, Rust, JavaScript, and C++. All variants share the same version number and are wire-compatible with BrinkhausFleetManager.

Core components (available in all variants):

  • App -- central wiring object that connects all components
  • ShutdownHandler -- graceful shutdown with signal handling
  • Settings -- thread-safe JSON settings with hierarchical dot-notation access
  • SelfDiagnosisEngine -- error/warning tracking with numeric codes
  • StatusEngine -- periodic status collection from pluggable sources
  • HeartbeatEngine -- watchdog for detecting hung threads
  • VersionInformation -- CI-generated version metadata
  • Fleet management -- HTTPS-based reporting to BrinkhausFleetManager

Additionally, the Python variant includes a RestServer (Flask + Waitress).

Installation

Python

pip install brinkhaustools
# With REST server support:
pip install brinkhaustools[rest]

Requirements: Python >= 3.10. The core has no external dependencies.

Rust

# Cargo.toml
[dependencies]
brinkhaustools = "0.4"
# With fleet management client:
brinkhaustools = { version = "0.4", features = ["fleet"] }

JavaScript

Include js/src/brinkhaus-tools.js from the repository. Zero dependencies, browser-compatible.

git clone https://gitlab.com/brinkhaus/brinkhaustools.git
# Use js/src/brinkhaus-tools.js in your project

C++

# CMakeLists.txt
include(FetchContent)
FetchContent_Declare(
    brinkhaustools
    GIT_REPOSITORY https://gitlab.com/brinkhaus/brinkhaustools.git
    GIT_TAG        0.4.0
    SOURCE_SUBDIR  cpp
)
FetchContent_MakeAvailable(brinkhaustools)
target_link_libraries(myapp PRIVATE brinkhaustools::brinkhaustools)

Quick Examples

Python

from brinkhaustools.common import App

app = App(
    name="my-service",
    settings_path="data/settings/settings_main.json",
    fleet_config_path="fleetManagementData/config.json",
)
app.start()
app.wait()

Rust

use brinkhaustools::App;

let app = App::builder("my-service")
    .settings("data/settings/settings_main.json")
    .build();
app.start();
app.wait();

Documentation

Full API reference, guides, and configuration details:

brinkhaus.gitlab.io/brinkhaustools

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

brinkhaustools-0.8.0.tar.gz (44.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

brinkhaustools-0.8.0-py3-none-any.whl (35.9 kB view details)

Uploaded Python 3

File details

Details for the file brinkhaustools-0.8.0.tar.gz.

File metadata

  • Download URL: brinkhaustools-0.8.0.tar.gz
  • Upload date:
  • Size: 44.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for brinkhaustools-0.8.0.tar.gz
Algorithm Hash digest
SHA256 11c7e8cad88c6b68002e8008cd90b7871a10f166f8c003c4d4a4558d1c017f43
MD5 5b9689fe6ed2eaf62bb83b74745d50e0
BLAKE2b-256 bdebf0318fbf38a2cd3b6392c242f2647ae4aa4fc052920d4824ddd5cb6626e8

See more details on using hashes here.

File details

Details for the file brinkhaustools-0.8.0-py3-none-any.whl.

File metadata

  • Download URL: brinkhaustools-0.8.0-py3-none-any.whl
  • Upload date:
  • Size: 35.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for brinkhaustools-0.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c3f87640c40824e88d6bc67b0de6f54c14bd1773c87b3bf699fc9277341501f8
MD5 0d5ea0f440cfe56b24e1f08abac92f16
BLAKE2b-256 d9be49e564910204b91ed4f6cf9f4f9313803a9d40162a0fe8d4b2ca12bc118c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page