🎆 A Web-based IDE for Teams using Go programming language/Golang. 一个基于 Web 的 Go 语言 IDE。
JavaScript HTML Go CSS Shell
Latest commit e074ddd Dec 28, 2016 @88250 88250 🎨 format code
Permalink
Failed to load latest commit information.
conf 🔖 Release 1.5.2 Dec 15, 2016
deps . Aug 5, 2015
doc update document links Mar 23, 2015
editor Update file header Dec 30, 2015
event Update file header Dec 30, 2015
file Exclude VCS files from file tree Jan 14, 2016
i18n 🎨 format code Dec 28, 2016
log Update file header Dec 30, 2015
notification Update file header Dec 30, 2015
output #277 Jun 12, 2016
playground #277 Jun 12, 2016
scm/git Update file header Dec 30, 2015
session #293 Dec 14, 2016
shell Fix #268 Feb 26, 2016
static #285 Oct 29, 2016
tmp . Oct 21, 2015
util Improve get local IP impl Jan 15, 2016
views fixed #285 Oct 29, 2016
.gitignore #293 Dec 14, 2016
.header.json Update file header Dec 30, 2015
.header.txt . Nov 13, 2014
.travis.yml . Dec 20, 2014
Dockerfile . Aug 5, 2015
LICENSE i18n Oct 23, 2014
README.md Update README.md Dec 15, 2016
TERMS.md terms Jan 28, 2015
coverage.sh . Dec 20, 2014
gulpfile.js modified: .gitignore Dec 15, 2015
main.go #293 Dec 14, 2016
package.json modified: .gitignore Dec 15, 2015
pkg.sh package tool Sep 19, 2015

README.md

Wide Build Status Coverage Status Apache License API Documentation Download

Have a try first, then download and setup it on your local area network, enjoy yourself!

先试试我们搭建好的在线服务,你可以在这里下载并在本地环境运行,然后邀请小伙伴们来玩吧!

  • 关于 Wide 的产品定位,请看这里,并欢迎参与讨论~
  • 加入黑客派,与其他程序员、设计师共同成长!

Introduction

A Web-based IDE for Teams using Go programming language/Golang.

Hello, 世界

Authors

Daniel and Vanessa are the main authors of Wide, here are all contributors.

Wide 的主要作者是 DanielVanessa,所有贡献者可以在这里看到。

Motivation

  • Team IDE:
    • Safe and reliable: the project source code stored on the server in real time, the developer's machine crashes without losing any source code
    • Unified environment: server unified development environment configuration, the developer machine without any additional configuration
    • Out of the box: 5 minutes to setup a server then open browser to develop, debug
    • Version Control: each developer has its own source code repository, easy sync with the trunk
  • Web-based IDE:
    • Developer needs a browser only
    • Cross-platform, even on mobile devices
    • Easy to extend
    • Easy to integrate with other systems
    • For the geeks
  • A try for commercial-open source: versions customized for enterprises, close to their development work flows respectively
  • Currently more popular Go IDE has some defects or regrets:
    • Text editor (vim/emacs/sublime/Atom, etc.): For the Go newbie is too complex
    • Plug-in (goclipse, etc.): the need for the original IDE support, not professional
    • LiteIDE: no modern user interface :p
    • No team development experience
  • There are a few of GO IDEs, and no one developed by Go itself, this is a nice try

Features

  • Code Highlight, Folding: Go/HTML/JavaScript/Markdown etc.
  • Autocomplete: Go/HTML etc.
  • Format: Go/HTML/JSON etc.
  • Build & Run
  • Multiplayer: a real team development experience
  • Navigation, Jump to declaration, Find usages, File search etc.
  • Shell: run command on the server
  • Web development: HTML/JS/CSS editor with Emmet integrated
  • Go tool: go get/install/fmt etc.
  • File Import & Export
  • Themes: editor and UI adjust, respectively
  • Cross-Compilation
  • Debug
  • Git integration: git command on the web

Screenshots

  • Overview

    Overview

  • Goto File

    Goto File

  • Autocomplete

    Autocomplete

  • Theme

    4

  • Show Expression Info

    Show Expression Info

  • Build Error Info

    Build Error Info

  • Git Clone

    Git Clone

  • Cross-Compilation

    Cross-Compilation

  • Playground Playground

Architecture

Build & Run

Build & Run

  • A browser tab corresponds to a Wide session
  • Execution output push via WebSocket

Flow:

  1. Browser sends Build request
  2. Server executes go build command via os/exec
    2.1. Generates a executable file
  3. Browser sends Run request
  4. Server executes the file via os/exec
    4.1. A running process
    4.2. Execution output push via WebSocket channel
  5. Browser renders with callback function ws.onmessage

Code Assist

Code Assist

  • Autocompletion
  • Find Usages/Jump To Declaration/etc.

Flow:

  1. Browser sends code assist request
  2. Handler gets user workspace of the request with HTTP session
  3. Server executes gocode/ide_stub(gotools)
    3.1 Sets environment variables (e.g. ${GOPATH})
    3.2 gocode with lib-path parameter

Documents

Setup

Download Binary

We have provided OS-specific executable binary as follows:

  • linux-amd64/386
  • windows-amd64/386
  • darwin-amd64/386

Download HERE!

Build Wide for yourself

  1. Download source or by git clone https://github.com/b3log/wide
  2. Get dependencies with
    • go get
    • go get github.com/visualfc/gotools github.com/nsf/gocode github.com/bradfitz/goimports
  3. Compile wide with go build

Docker

  1. Get image: sudo docker pull 88250/wide:latest
  2. Run: sudo docker run -p 127.0.0.1:7070:7070 88250/wide:latest ./wide -docker=true -channel=ws://127.0.0.1:7070
  3. Open browser: http://127.0.0.1:7070

Known Issues

Terms

  • This software is open sourced under the Apache License 2.0
  • You can not get rid of the "Powered by B3log" from any page, even which you made
  • If you want to use this software for commercial purpose, please mail to support@liuyun.io for a commercial license request
  • Copyright © b3log.org, all rights reserved

Credits

Wide is made possible by the following open source projects.