Categorygithub.com/embly/star
modulepackage
0.0.3
Repository: https://github.com/embly/star.git
Documentation: pkg.go.dev

# README

Star

Star uses starlark to provide a python-like environment to run Go code. This is a quick and dirty experiment and should not be taken seriously.

The intro blog post is likely the best place to get started. Or you can play around in the repl: https://embly.github.com/star

How to use

Head to the releases section to download a binary or if you have Go installed just run:

go get github.com/embly/star/cmd/star

Star provides a python-like environment to run Go packages. A small subset of the standard library is currently supported. You can see the supported packages here: https://github.com/embly/star/blob/master/src/packages.go

Some example scripts:

Use Go's concurrency model to fetch some urls in parallel:

http = require("net/http")
ioutil = require("io/ioutil")
sync = require("sync")
star = require("star")
time = require("time")

def get_url(url, wg):
    resp, err = http.Get(url)
    if err:
        return print(err)
    b, err = ioutil.ReadAll(resp.Body)
    if err:
        return print(err)
    body, err = star.bytes_to_string(b)
    if err:
        return print(err)
    time.Sleep(time.Second * 2)
    wg.Done()


def main():
    wg = sync.WaitGroup()
    wg.Add(3)
    urls = [
        "https://www.embly.run/hello/",
        "https://www.embly.run/hello/",
        "https://www.embly.run/hello/",
    ]
    for url in urls:
        star.go(get_url, url, wg)
    wg.Wait()

Run a web server:

http = require("net/http")


def hello(w, req):
    w.WriteHeader(201)
    w.Write("hello world\n")


http.HandleFunc("/hello", hello)

http.ListenAndServe(":8080", http.Handler)

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# Functions

No description provided by the author
No description provided by the author
No description provided by the author
ValidateArgs.

# Variables

No description provided by the author

# Structs

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# Interfaces

No description provided by the author

# Type aliases

No description provided by the author