Skip to main content

Decentralized type system

Project description

This is a highly experimental project in a planning state. Use at your own risk.

Domain Type System

The Domain Type System (DTS) is the first draft and implementation of the concept of a flexible "decentralized type system."

Goal

The goal of the project is to allow data structures to be shared across the network by their type instead of server endpoints. DTS receives a data structure and sends it to any interested parties subscribed to the data structure's type.

It's currently used by and developed for a tiny sake brewing operation. It has been created solely for this purpose but will hopefully be extended over time.

The development of this project has enabled us to plug in new hardware sensors and data logging devices without the need to reconfigure multiple projects across a variety of hardware.

Limitations

Currently the project only works over local multicast (with a different multicast group per type). The plan is to support pluggable transport implementations over other networks: TCP, HTTP, Web Sockets, and potentially other message passing implementations such as MQTT, ZeroMQ, nanomsg, Amazon SQS, etc.

It's also tied to the capnproto data interchage format, though there's nothing keeping it from being data interchange agnostic in the future. There's no reason it can't support the likes of JSON, CBOR, Ion, MessagePack, Protocol Buffers, XML, Python Pickles, or even raw bytes, for example.

Only small data structures can be sent right now (anything that fits into a typical <1500 byte packet, minus DTS overhead). This is only because large amounts of data weren't needed for our purposes during development, but this will change in the future.

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

domaintypesystem-0.0.2.post1.tar.gz (18.8 kB view details)

Uploaded Source

Built Distribution

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

domaintypesystem-0.0.2.post1-py3-none-any.whl (8.2 kB view details)

Uploaded Python 3

File details

Details for the file domaintypesystem-0.0.2.post1.tar.gz.

File metadata

File hashes

Hashes for domaintypesystem-0.0.2.post1.tar.gz
Algorithm Hash digest
SHA256 2e5699fc7cd2e520adca3479e2fc35b2f9c1130819ff792e2ce465e87f745f40
MD5 9195ab6aa22f4e66912166d4b9be61cd
BLAKE2b-256 2d0335d9f8dcd495398c8daf6788910c8b77cff1b54407c9b50e72cb7e1d7c40

See more details on using hashes here.

File details

Details for the file domaintypesystem-0.0.2.post1-py3-none-any.whl.

File metadata

File hashes

Hashes for domaintypesystem-0.0.2.post1-py3-none-any.whl
Algorithm Hash digest
SHA256 d1db2c18f18e486e493f40cd16a55e64542f23799928c3d8814090f3394e9de9
MD5 8e906035627acdff59800acb332208c3
BLAKE2b-256 57842894ddbadbcb72d18b39f0c92dd01d0142565a28515ca822e5b01deca23e

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