Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

gavinwei121/Jetmaker

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
41 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 ^_^ !!!

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

Releases

Packages

Used by

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.