Metadata-Version: 2.1
Name: intersect-sdk
Version: 0.6.1a1
Summary: Python SDK to interact with INTERSECT
Keywords: intersect
Author-Email: Lance Drane <dranelt@ornl.gov>, Marshall McDonnell <mcdonnellmt@ornl.gov>, Seth Hitefield <hitefieldsd@ornl.gov>, Andrew Ayres <ayresaf@ornl.gov>, Gregory Cage <cagege@ornl.gov>, Jesse McGaha <mcgahajr@ornl.gov>, Robert Smith <smithrw@ornl.gov>, Gavin Wiggins <wigginsg@ornl.gov>
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Requires-Python: <4.0,>=3.8.10
Requires-Dist: pydantic>=2.7.0
Requires-Dist: retrying<2.0.0,>=1.3.4
Requires-Dist: paho-mqtt<2.0.0,>=1.6.1
Requires-Dist: minio>=7.2.3
Requires-Dist: jsonschema[format-nongpl]>=4.21.1
Requires-Dist: pika<2.0.0,>=1.3.2; extra == "amqp"
Requires-Dist: eval-type-backport>=0.1.3; extra == "py38"
Provides-Extra: amqp
Provides-Extra: py38
Description-Content-Type: text/markdown

# INTERSECT-SDK

The INTERSECT-SDK is a framework for microservices to integrate themselves into the wider INTERSECT ecosystem.

Please note that this README is currently a work in progress.

## What is INTERSECT?

INTERSECT was designed as a specific usecase - as an open federated hardware/software architecture for the laboratory of the future, which connects scientific instruments, robot-controlled laboratories and edge/center computing/data resources to enable autonomous experiments, self-driving laboratories, smart manufacturing, and AI-driven design, discovery and evaluation.

## What are the core design philosophies of the SDK?

- Event-driven architecture
- Support core interaction types: request/response, events, commands, statuses
- Borrows several concepts from [AsyncAPI](https://www.asyncapi.com/docs/reference/specification/latest), and intends to support multiple different protocols. Currently, we support MQTT 3.1.1 and AMQP 0.9.1, but other protocols will be supported as well.
- Users automatically generate schema from code; schemas are part of the core contract of an INTERSECT microservice, and both external inputs and microservice outputs are required to uphold this contract.
