Need help with dstack?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

dstackai
156 Stars 9 Forks Apache License 2.0 544 Commits 22 Opened issues

Description

An open-source tool to rapidly develop data applications with Python

Services available

!
?

Need anything else?

Contributors list

No Data

dstack is an open-source platform to build and share data and ML applications within hours

Discord Chat

Installation

Installing and running

dstack
is very easy:
pip install dstack
dstack server start

If you run it for the first time, it may take a while. Once it's done, you'll see the following output:

To access the application, open this URL in the browser: http://localhost:8080/auth/verify?user=dstack&code=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&next=/

The default profile in "~/.dstack/config.yaml" is already configured. You are welcome to push your applications using Python package.

To access

dstack
, click the URL provided in the output. If you try to access
dstack
without using this URL, it will require you to sign up using a username and a password.

If you open the URL, you'll see the following interface:

You'll be logged as the

dstack
user. The page you'll see is
Applications
. It shows you all published applications which you have access to. The sidebar on the left lets you open other pages:
ML Models
,
Settings
,
Documentation
, and
Chat
.

Minimal Application

Here's an elementary example of using

dstack
. The application takes real-time stock exchange data from Yahoo Finance for the FAANG companies and renders it for a selected symbol. Here's the Python code that you have to run to make such an application:
import dstack.controls as ctrl
import dstack as ds
import plotly.express as px


@ds.cache() def get_data(): return px.data.stocks()

def output_handler(self, ticker): self.data = px.line(get_data(), x='date', y=ticker.value())

app = ds.app(controls=[(ctrl.ComboBox(items=get_data().columns[1:].tolist()))], outputs=[(ctrl.Output(handler=output_handler))])

result = ds.push("minimal_app", app) print(result.url)

If you run it and click the provided URL, you'll see the application:

To learn about how this application works and to see other examples, please check out the Tutorials documentation page.

To learn in more detail about what applications consist of and how to use all their features, check out the Concepts documentation page.

ML Models

dstack
decouples the development of applications from the development of ML models by offering an
ML registry
. This way, one can develop ML models, push them to the registry, and then later pull these models from applications.

dstack
's
ML Registry
supports
Tensorflow
,
PyTorch
, or
Scikit-Learn
models.

Here's a very simple example of how to push a model to

dstack
:
from sklearn import datasets
from sklearn import svm
import dstack as ds

digits = datasets.load_digits() clf = svm.SVC(gamma=0.001, C=100.) clf.fit(digits.data[:-1], digits.target[:-1])

url = ds.push("clf_app", clf) print(url)

Now, if you click the URL, it will open the following page:

Here you can see the snippet of how to pull the model from an application or from anywhere else:

import dstack as ds

model = ds.pull('/dstack/clf_app')

To learn how to build an application that uses a simple ML model, check out the corresponding tutorial.

Feedback

Do you have any feedback either minor or critical? Please, file an issue in our GitHub repo or write to us on our Discord Channel.

Have you tried

dstack
? Please share your feedback with us using this form!

Documentation

For more details on the API and code samples, check out the docs.

Contribution

The instructions on how to build dstack from sources can be found here.

License

dstack
is an open-source library licensed under the Apache 2.0 license

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.