Skip to content

A powerful WebSocket extension for Scratch.

License

Notifications You must be signed in to change notification settings

derpygamer2142/cloudlink

 
 

Repository files navigation

CloudLink Python

This is the original, Python-based codebase for CloudLink server.

💡 Features 💡

🪶 Fast and lightweight

CloudLink can run on minimal resources. At least 25MB of RAM and any reasonably capable CPU can run a CloudLink server.

🌐 Essential networking tools

  • Unicast and multicast packets across clients
  • Expandable functionality with a built-in method loader

📦 Minimal dependencies

All dependencies below can be installed using pip install -r requirements.txt.

🔋Batteries included

The CloudLink Python server comes with full support for the CL4 protocol and the Scratch cloud variable protocol. Just download, setup, and start!

🧱 Plug-and-play modularity

You can easily extend the functionality of the server using classes and decorators. Here's an example of a simple plugin that displays "Foobar!" in the console when a client sends the message { "cmd": "foo" } to the server.

# Import the server
from cloudlink import server

# Import default protocol
from cloudlink.server.protocols import clpv4

# Instantiate the server object
server = server()

# Set logging level
server.logging.basicConfig(
    level=server.logging.DEBUG
)

# Load default CL protocol
clpv4 = clpv4(server)

# Define the functions your plugin executes
class myplugin:
    def __init__(self, server, protocol):
        
        # Example command - client sends { "cmd": "foo" } to the server, this function will execute
        @server.on_command(cmd="foo", schema=protocol.schema)
        async def foobar(client, message):
            print("Foobar!")

# Load the plugin!
myplugin(server, clpv4)

# Start the server!
server.run()

About

A powerful WebSocket extension for Scratch.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 68.4%
  • JavaScript 31.6%