joy

package module
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 16, 2019 License: GPL-3.0 Imports: 0 Imported by: 0

README

joy compiler

⚠️ Joy development is currently on hold. Recent Go -> WASM developments look like a more promising path to Go being a great choice for frontend development. I'm thrilled to see development moving so quickly now and I think our efforts are better spent improving the Go to WASM compiler. As for Joy, there are quite a few interesting nuggets of code in here that I'd encourage you to dig up, polish and open source 😊

Thanks for your interest in this project!

❤️ Matt


Translate idiomatic Go into concise Javascript that works in every browser. Use Go's type system and world-class tooling to build large web applications with confidence.

Visit mat.tm/joy to learn more about Joy.


Getting Started     ·    Examples     ·    Using the CLI

Contributing    ·    FAQ    ·    More Links

Joy API    ·    DOM API (coming soon!)    ·    Virtual DOM API (coming soon!)


Getting Started

1. Install Joy:

curl -sfL https://raw.githubusercontent.com/matthewmueller/joy/master/install.sh | sh

Note: you can also download from the releases tab.

2. Create a main.go file with the following code:

package main

func main() {
  println("hi world!")
}

3. Run the code in a real browser:

joy run main.go

4. See the compiled Javascript:

joy main.go

Examples

Visit https://mat.tm/joy/#examples or peruse the test suite.

Using the CLI

Compile Go into Javascript:

joy <main.go>

Compile and run the Go code in headless chrome:

joy run <main.go>

Build a development version of the code:

joy build --dev <main.go>...

Build a production version of the code (coming soon!):

joy build <main.go>...

Start a development server with livereload:

joy serve <main.go>...

Run joy help for additional details.

Contributing

So happy to hear you're interested in contributing! Here's a quick rundown of how to get setup:

Setup

  1. Make sure you have the Go environment setup on your computer. There are quite a few better resources online on how to do that

  2. go get -u -v github.com/matthewmueller/joy/... to install the compiler from source

  3. go test -v to run all the tests

Links and tips:

If you have any further questions, open an issue or reach out to me on twitter.

FAQ

Visit https://mat.tm/joy/#faq to view the FAQ.

  • Run joy help to see what else Joy can do for you
  • Visit mat.tm/joy to read more about Joy's origins
  • Chat with us in #joy-compiler on Slack at gophers.slack.com
  • Star github.com/matthewmueller/joy to follow the development
  • Follow twitter.com/mattmueller for project updates

Documentation

Overview

Package joy is a compiler that translates idiomatic Go into concise Javascript that works in every browser. Use Go's type system and world-class tooling to build large web applications with confidence.

Directories

Path Synopsis
_examples
api
run
Package run compiles your Go file and runs it on headless chrome This is the programmatic API to running Joy.
Package run compiles your Go file and runs it on headless chrome This is the programmatic API to running Joy.
test
Package test is coming soon
Package test is coming soon
cmd
joy
internal
_dom/override
Package override TODO
Package override TODO
cli
compiler
Package compiler is the entrypoint to Joy's compiler It follows the steps outlined in: https://mat.tm/joy/#how
Package compiler is the entrypoint to Joy's compiler It follows the steps outlined in: https://mat.tm/joy/#how
env
gen
mains
Package mains returns absolute file paths to the packages that are "main" packages, from the list of packages given.
Package mains returns absolute file paths to the packages that are "main" packages, from the list of packages given.
std
fmt

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL