Skip to main content

A brief description of your module

Project description

Jetmaker

Jetmaker Background 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

Commmunication

Join this Discord Community to make Jetmaker better together ^_^ !!!

Email me ( testcodegavin@gmail.com ) if you wanna share with me your thoughts about Jetmaker.

Resources

Visit Documentation

Getting Started

Below is a simple example of how two distributed nodes interact with each other's data, namespace and resource

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'

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.13.tar.gz (8.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.13-py3-none-any.whl (8.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: jetmaker-0.13.tar.gz
  • Upload date:
  • Size: 8.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.13.tar.gz
Algorithm Hash digest
SHA256 f89fb4690e2b0388e46a339c130e93c066fa39f239534812181db6a03db49fa4
MD5 0c9d9d8913bb3c8755747f9b41a2e38c
BLAKE2b-256 3ae05dcb9051d8da3c124f8b755b129c173ff23daa194a28b43f914d6ef03678

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jetmaker-0.13-py3-none-any.whl
  • Upload date:
  • Size: 8.7 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.13-py3-none-any.whl
Algorithm Hash digest
SHA256 a404d76cbc24aee64d1deef8ccf71a31a6fe63f25fb90745dced2c301b9c1dfe
MD5 b9a5710543853b9d592587441da6b057
BLAKE2b-256 d62b7223af370d3f1f22b34b454272f13c8ff2cc88318a1caa3b16c9d921ab36

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