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
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
01372501ee92c5f07283bb0b6bff2039207025945727c4329d683dc0efefc6d6
|
|
| MD5 |
045397a65cd9def3c8e7175046087957
|
|
| BLAKE2b-256 |
c86801ee7e14749bd083637263d32c85f45cbcac6694db496b9421d969713b79
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6d163c12fde5d59b2ddc2ac104cbeb844c59080425dc637d9fa1cc9e462d6379
|
|
| MD5 |
835bb6124334d023612c4cc3ebd4e4ae
|
|
| BLAKE2b-256 |
9665f9d2e165bd74bb7d6c19147cd6a469e865d9daa898c90c26407b05be6d73
|