Skip to main content

loop-node

loop-node is the low-level runtime and wire protocol shared by Loop and loop-sdk. Most integrations should use loop-sdk directly; use loop-node when building a lower-level Node API or integration layer.

Installation

pip install loop-node

Published wheels support CPython 3.10–3.14 on Linux x86_64 (glibc 2.28+). They contain compiled implementation modules and type stubs; installation does not require a compiler.

Minimal example

import time

from loop_node import (
    EmptyConfig,
    FieldContract,
    LifecycleState,
    Node,
    NodeConnectionConfig,
    PayloadContract,
    ValueKind,
)

VALUE = PayloadContract(fields={"value": FieldContract(kind=ValueKind.SCALAR)})

node = Node(config_type=EmptyConfig)
output = node.declare_stream_output("value", payload_contract=VALUE)
node.start(
    node_id="example_node",
    connection=NodeConnectionConfig(loop_endpoint="tcp/127.0.0.1:7448"),
)

try:
    while node.is_running:
        node.process_control()
        if node.status.lifecycle is LifecycleState.ACTIVE:
            output.publish(timestamp_ns=time.time_ns(), payload={"value": 1.0})
        time.sleep(0.1)
finally:
    if node.status.lifecycle is not LifecycleState.FINALIZED:
        node.shutdown()
    node.close()

A Node declares its Config and Ports before connecting. Loop supplies the validated Config, Port bindings, and lifecycle operations. Call process_control() regularly to handle lifecycle requests from Loop. Use the Node lifecycle state to decide when your application should exchange Graph data. In most cases, only exchange data while the Node is ACTIVE.

Lifecycle

All Nodes use IDLE → Configure → CONFIGURED → Start → ACTIVE. Configure validates Config and calls optional on_configure(config) before Port binding. Start takes only bindings and calls optional on_start(). Stop and ResetFault return to IDLE; each restart requires Configure again. Configure may update existing payload contracts. The Orchestrator validates the resulting graph before starting Nodes. Port names and kinds stay fixed.

Describe returns the Config schema and current Port contracts for inspection. Loop uses Configure results for payload compatibility checks; contracts read through Describe are not treated as finalized for a run.

Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

loop_node-0.1.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

loop_node-0.1.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (1.0 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

loop_node-0.1.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

loop_node-0.1.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (981.9 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

loop_node-0.1.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

loop_node-0.1.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (967.4 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

loop_node-0.1.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (929.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

loop_node-0.1.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (866.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

loop_node-0.1.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (903.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

loop_node-0.1.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (847.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

File details

Details for the file loop_node-0.1.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for loop_node-0.1.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ad0c57ddcafe653ebde1772de7471ef92bd944450001f8ae70adb10846be3cd9
MD5 eca7b66188532741619a2a7cedb99510
BLAKE2b-256 70f55e7adcb7a9aeb90888e92dd778d56766fc852a65563445d8f217c08487c0

See more details on using hashes here.

Provenance

The following attestation bundles were made for loop_node-0.1.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: loop-node-publish.yml on configinc/loop

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file loop_node-0.1.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for loop_node-0.1.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 1aa86c61f3eade88d0f9922a3e013bbdda332b5c80e4dabd724abb1c8187ba95
MD5 e162e993227701355fb4818c44a86898
BLAKE2b-256 2aa333bd67798963b615ff55380c4c53ef0527c4947788b873eb327a43fbf61b

See more details on using hashes here.

Provenance

The following attestation bundles were made for loop_node-0.1.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: loop-node-publish.yml on configinc/loop

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file loop_node-0.1.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for loop_node-0.1.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 aa2e2ffed507263a322a529494a6283234b3b35e4ce3ae2a6105ab78478ec8f1
MD5 2f5c9e93aedba135523de0277a64b277
BLAKE2b-256 fd0052e182eb11948c0a17604b209b09d77e477ed0d5b29a2d399b58154801e9

See more details on using hashes here.

Provenance

The following attestation bundles were made for loop_node-0.1.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: loop-node-publish.yml on configinc/loop

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file loop_node-0.1.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for loop_node-0.1.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ca308d958183de1ed2749499c9bfd70d96ea3962ba18ee21d7473ee4eda09ac5
MD5 e34c746677277e86acaf019beb5a980e
BLAKE2b-256 29e90ef4931bb6d404f9e10af7a1709403f52ebbd2810c4cda0993e3e9fd191b

See more details on using hashes here.

Provenance

The following attestation bundles were made for loop_node-0.1.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: loop-node-publish.yml on configinc/loop

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file loop_node-0.1.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for loop_node-0.1.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 33bcffb3250f8cb5f0123fee4470d029b043c9a000b19578d108fbea51bf6534
MD5 ca1c5884f4aff5225e3572b261647acc
BLAKE2b-256 a20e90a61486055e91f9aadced4f1cb8b8db685d0f8e3512ff60c32b624eae88

See more details on using hashes here.

Provenance

The following attestation bundles were made for loop_node-0.1.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: loop-node-publish.yml on configinc/loop

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file loop_node-0.1.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for loop_node-0.1.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 eee40fa4c7725682061115de965f2b7cf56fe2e507e02b6c2bfa0c715d358e4e
MD5 e911087fea027e45fbe909c1b2e62778
BLAKE2b-256 84737d0687d9c14e6996b3104ab1c8699a982e9946de522b86f36624aad0d792

See more details on using hashes here.

Provenance

The following attestation bundles were made for loop_node-0.1.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: loop-node-publish.yml on configinc/loop

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file loop_node-0.1.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for loop_node-0.1.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4153f82889fb57a4394a9b27c63581f4d1259149ec10eb5d6b2055d90e44a70f
MD5 ea262de92a381a37f34c7032b43c5acc
BLAKE2b-256 e70ee55730df673f2ef89ae3e2c672e8c44e8528a3abc7a95933ee5985321845

See more details on using hashes here.

Provenance

The following attestation bundles were made for loop_node-0.1.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: loop-node-publish.yml on configinc/loop

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file loop_node-0.1.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for loop_node-0.1.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2e953217fb5ed30be8ac8f422ff4e4923866304a686e040293081c9fdbdd90f6
MD5 5e9851c6d37eff654c6d6f2df61ab93e
BLAKE2b-256 02cd09d9d73177acb473b473cf5e6971385e7df9dd6be9bcb65088e6b204b671

See more details on using hashes here.

Provenance

The following attestation bundles were made for loop_node-0.1.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: loop-node-publish.yml on configinc/loop

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file loop_node-0.1.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for loop_node-0.1.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 74196f4b4a1b427fd5fb0eaaf5ed91bcaee4ed56517354baf8fbc5330898e6d2
MD5 6ca600c07adeb1fbb9f1c2cac4bacd2a
BLAKE2b-256 020cffc2e755fdfebd4eb5952c26f89ac0ef2ba9db22732af3a157bc63d518ba

See more details on using hashes here.

Provenance

The following attestation bundles were made for loop_node-0.1.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: loop-node-publish.yml on configinc/loop

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file loop_node-0.1.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for loop_node-0.1.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 21f8a3b74b12210db035b025b69b1bd404509c4d2fa721146638f0f692b3ba72
MD5 ffc2838a66eea913a25dcc19a0cbab97
BLAKE2b-256 cb3bd1c90a14176d4b36806c274bcece26ebb4a1ae3f6150e1785d3b800fd924

See more details on using hashes here.

Provenance

The following attestation bundles were made for loop_node-0.1.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl:

Publisher: loop-node-publish.yml on configinc/loop

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.3.0

10 files

0.2.0

10 files

This release

0.1.0 This release

10 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page