Skip to main content

A brief description of your module

Project description

Jetmaker

Jetmaker is an end-to-end framework designed to simplify the development of distributed systems in Python. It enables distributed Python applications to seamlessly access each other's services, resources, objects, and data, making inter-application interactions feel as though they are operating within the same environment. Jetmaker also provides powerful namespace sharing and synchronization tools, allowing distributed applications to work together as a unified, coordinated system.

Installation

pip install jetmaker

Resources

Visit Documentation

Getting Started

Below is a simple example of how two distributed nodes access each other's namespace and resource statefully

Node 1

Use the IP address and port of Node 1 to start this Jetmaker app, the node calling create_app will act as the coordinator node.

from jetmaker import create_app

host = '<you ip address>:<your port>'
pwd = '<your password>'

app = create_app(host=host, password=pwd, join_as='main_node')

create a simple function and a simple stateful object for testing

def recv_string(string):
    return f'{string} is received'

app.link(js, 'js')

class Instance:
    def __init__(self) -> None:
        self.val = 0
    def set_value(self, val):
        self.val = val
    def get_value(self):
        return self.val
    
instance = Instance()

link it to the app for the network applications to access

app.share(recv_string, 'recv_str')
app.share(instance, 'ins')

let this persist if you it always available for access

app.persist()

Node 2

On another remote node, you can join the network of distributed applications and share services of Node 2 or access services of other nodes . Join the app

from jetmaker import join_app

host = '<address of Node 1>:<port of Node 1>'
pwd = '<your password>'

app = join_app(host=host, password=pwd, join_as='other_node')

Access the function shared by Node1

result = app.call('recv_str').run('this string')

-> this string is received

Access the object shared by Node1

instance = app.Object('ins')
print(instance.get_value())
instance.set_value(100)
print(instance.get_value())
-> 0
-> 100

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

jetmaker-0.12.tar.gz (7.3 kB view details)

Uploaded Source

Built Distribution

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

jetmaker-0.12-py3-none-any.whl (7.6 kB view details)

Uploaded Python 3

File details

Details for the file jetmaker-0.12.tar.gz.

File metadata

  • Download URL: jetmaker-0.12.tar.gz
  • Upload date:
  • Size: 7.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.6

File hashes

Hashes for jetmaker-0.12.tar.gz
Algorithm Hash digest
SHA256 01372501ee92c5f07283bb0b6bff2039207025945727c4329d683dc0efefc6d6
MD5 045397a65cd9def3c8e7175046087957
BLAKE2b-256 c86801ee7e14749bd083637263d32c85f45cbcac6694db496b9421d969713b79

See more details on using hashes here.

File details

Details for the file jetmaker-0.12-py3-none-any.whl.

File metadata

  • Download URL: jetmaker-0.12-py3-none-any.whl
  • Upload date:
  • Size: 7.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.6

File hashes

Hashes for jetmaker-0.12-py3-none-any.whl
Algorithm Hash digest
SHA256 6d163c12fde5d59b2ddc2ac104cbeb844c59080425dc637d9fa1cc9e462d6379
MD5 835bb6124334d023612c4cc3ebd4e4ae
BLAKE2b-256 9665f9d2e165bd74bb7d6c19147cd6a469e865d9daa898c90c26407b05be6d73

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