pamoja for TypeScript - v0.2.0
    Preparing search index...

    Module pamoja

    The whole pamoja framework in one package.

    Each capability is its own package (@pamoja/mqtt, @pamoja/security, and so on), a hand-written facade in the language's idiom over the generated napi-rs contract in @pamoja/native: rejected promises for errors, async iteration, plain JavaScript values instead of buffers. This package depends on all of them and on @pamoja/core, the engine's surface, and re-exports them, flattening the identity, codec, helper, and MQTT surfaces and namespacing the rest, whose names are ordinary words that only read unambiguously with the capability in front of them.

    pamoja

    The whole pamoja framework in one package: every capability of one memory-safe Rust core, behind an idiomatic TypeScript facade, for IoT, robotics, and drones. Each capability is also its own package, so an application that needs one thing can depend on @pamoja/mqtt alone; this package depends on all of them and re-exports them.

    documentation API reference

    npm install pamoja
    

    Each package name opens its reference.

    Package What it covers
    @pamoja/core A sensor and an actuator pamoja has never heard of, written against the core traits, run against a rule, and published with nothing plugged in
    @pamoja/core The transport every link shares (send, receive, subscribe, and a faulty wrapper for tests) and the runtime version
    @pamoja/core A link pamoja does not ship, written in your language against the transport contract and composed like any other
    @pamoja/security ed25519 device identity: sign a reading and verify it, so a gateway can prove it is authentic
    @pamoja/codec CBOR, JSON, and raw codecs behind one trait, and batch packing for metered links: delta and varint for integers, and a quantizer for f32 readings
    @pamoja/kit Plain-language helper math: smoothing, calibration, PID and thermostat control, a trigger with hysteresis, trend and surge prediction, rolling windows, unit conversions, geo, and robot motion
    @pamoja/serial SLIP and COBS byte stuffing with streaming decoders, so a UART byte stream carries discrete packets
    @pamoja/modbus Modbus RTU for RS485 field devices: a client that polls them over a serial port with the line's timing, simulated devices that answer as real ones do, and the frames with their CRC-16/MODBUS
    @pamoja/can CAN 2.0 and CAN FD frames with 11- and 29-bit identifiers, J1939 decode and compose, and a node on a bus, simulated or a Linux interface through SocketCAN
    @pamoja/gpio I2C address frames with reserved-range checks, the four SPI clock modes, active-high or active-low switches and contacts, and GPIO lines opened on a Linux board
    @pamoja/hal The embedded-hal traits every driver takes, a bit-banged 1-Wire bus, simulated parts and scripted buses that stand in for hardware, the Linux backends over i2c-dev, spidev, and the GPIO character device, one I2C bus and one serial port a program and its drivers share, and delays that sleep or only count
    @pamoja/sensors Datasheet-anchored drivers for eleven parts, from every language: the BME280, BMP280, DS18B20, HDC1080, INA219, INA226, ADS1115, OPT3001, SCD4x, SHT3x, and TMP117
    @pamoja/actuators A PCA9685 driver for servos, LEDs, and valves, and stepper drivers for four coil lines or a step and direction chip, in every language
    @pamoja/lora Time-on-air, duty-cycle off-time, the regional channel plans a LoRa node must keep to, and the link budget that sets its range
    @pamoja/lorawan LoRaWAN 1.0.x MAC framing, AES-CMAC and AES encryption, and both halves of the OTAA join
    @pamoja/radios The Semtech SX126x and SX127x LoRa radios and the SX1302 and SX1303 gateway concentrators: their commands, registers, and decoders, the amplifier setting a regional EIRP ceiling allows, a duty-cycle guard, and simulated chips that stand in for a module
    @pamoja/gateway What a LoRaWAN gateway speaks: the Semtech packet forwarder protocol and the Basics Station protocol on both sides, the network side of a single site, and a bridge from the radio to the link that leaves it
    @pamoja/mesh Addressed, hop-limited, CRC-checked frames and duplicate suppression that floods a packet exactly once
    @pamoja/routing Reverse-path routing that learns the cheapest route from overheard traffic
    @pamoja/mavlink MAVLink v1 and v2 framing, signing, named message fields and enum values, and the mission, command, and offboard protocols
    @pamoja/audit A tamper-evident, hash-chained log; altering, reordering, or dropping a record breaks verification
    @pamoja/session X25519 key agreement, HKDF, and ChaCha20-Poly1305 with an anti-replay window, with no TLS stack
    @pamoja/update Signed firmware manifests, streaming image verification, and A/B slots that fall back on their own
    @pamoja/power Duty cycling and an energy-aware governor that stretches work as the battery drains and holds its mode against a wandering charge
    @pamoja/telemetry Observability that ships only what is worth the bytes as link cost rises, while counting everything
    @pamoja/mqtt An MQTT client with the topic and wildcard rules, acknowledged delivery, retained messages, a last will, and TLS, as the core transport
    @pamoja/coap A CoAP client and the server it reports to, over UDP, with confirmable delivery and observe
    @pamoja/loopback An in-process transport with topic matching, a fault injector, and outages on demand, for testing with no broker
    @pamoja/sync Offline-first queues in memory or on disk, bounded or not, the on-disk one surviving power loss, and the drain that forwards them in order when a link returns
    @pamoja/ladder Cheapest reachable link first, buffering to a store when every link is down
    @pamoja/bus An in-memory typed publish and subscribe event bus, with publishers that never wait and subscribers that count what they miss
    @pamoja/sim Noisy and replay sensors, a recording actuator, a simulated robot that dead-reckons its pose, and a link that loses sends on a pattern
    @pamoja/profile Named, ready-to-run device profiles from plain data or a JSON manifest, run as a node in every language
    @pamoja/profile Rules between nodes as a file: a condition over one node's topic with hysteresis, and the actions that drive another node's actuator or publish, run by an engine off any link in every language, or judged reading by reading
    @pamoja/kit Wheel speeds for differential, skid-steer, car-like, and mecanum chassis, a two-link arm and Denavit-Hartenberg forward kinematics, odometry, waypoint guidance, a safety gate, and servo, ESC, and encoder conversions
    @pamoja/ros2 ROS 2 names, RIHS01 type hashes, CDR encoding, and rmw_zenoh key assembly, with no ROS 2 installed
    @pamoja/zenoh Zenoh key expressions: validity, canonical form, matching, and whether two expressions share or cover keys

    All of them run on @pamoja/native, the compiled engine, which is one binary whichever packages you install.

    MIT

    actuators
    audit
    bus
    can
    coap
    gateway
    gpio
    hal
    ladder
    loopback
    lora
    lorawan
    mesh
    modbus
    power
    profile
    radios
    ros2
    routing
    sensors
    serial
    session
    sim
    sync
    telemetry
    transport
    update
    zenoh
    Ackermann
    Anomaly
    Calibration
    Complementary
    Debounce
    Depletion
    DeviceIdentity
    DiffDrive
    Esc
    EStop
    Geofence
    Kalman
    Limits
    Mecanum
    Median
    MqttClient
    Odometry
    Pid
    Quadrature
    QuadratureScale
    Quantizer
    Ramp
    SafetyGate
    ServoMap
    SkidSteer
    Smoother
    Surge
    Thermostat
    Transform
    Trend
    Trigger
    TwoLinkArm
    Watchdog
    WaypointFollower
    Window
    BodyMotion
    Coord
    DhParameters
    Guidance
    Joints
    MqttClientOptions
    MqttMessage
    MqttPublishOptions
    MqttTls
    MqttWill
    Point
    Pose
    Position
    Reach
    SideSpeeds
    Tilt
    Twist
    WheelSpeeds
    Boundary
    Edge
    Elbow
    Payload
    Qos
    Boundary
    Edge
    Elbow
    Qos
    WINDOW_CAPACITY
    bearingBetween
    celsiusToFahrenheit
    celsiusToKelvin
    deadband
    dewPoint
    distanceBetween
    fahrenheitToCelsius
    fingerprint
    forwardKinematics
    fromCbor
    hectopascalsToPascals
    kelvinToCelsius
    kilopascalsToPascals
    obstacleStop
    packSamples
    pascalsToHectopascals
    pascalsToKilopascals
    pascalsToPsi
    percentToRatio
    psiToPascals
    ratioToPercent
    tiltFromAccel
    toCbor
    unpackSamples
    verify
    verifyMessage
    version