Install a Library or Service
Easily install TinyChain services on your host or cluster without restarting
Arguably TinyChain's most powerful feature is the ability to install a Library
or Service
at runtime without restarting. For example, TinyChain's linear algebra and machine learning services are distributed as part of the Python client (math.linalg.LinearAlgebra
, ml.NeuralNets
, and ml.Optimizers
). Installing them is as easy as:
import tinychain as tc
# the lead replica (can be a load balancer)
LEAD = tc.URI("http://your.tinychain.cluster")
host = tc.Host(LEAD)
host.install(tc.math.linalg.LinearAlgebra())
Install your Service
Of course the built-in Service
s aren't much use without being able to install your own!
# ...
class MyService(tc.service.Service):
NS = "my_namespace"
NAME = "my_service"
VERSION = tc.Version("0.0.0")
__uri__ = tc.service.service_uri(LEAD, NS, NAME, VERSION)
@tc.get
def hello(self, name: tc.String) -> tc.String:
return tc.String("Hello, {{name}}!").render(name=name)
assert tc.URI(MyService).path() == "/service/my_namespace/my_service/0.0.0"
host.install(MyService())
assert host.get(tc.URI(MyService()).path() + "/hello", "World") == "Hello, World!"
Last updated