leaps

module
v0.6.1 Latest Latest
Warning

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

Go to latest
Published: May 14, 2017 License: MIT

README

Leaps

Leaps is a service for collaboratively editing your local files over a web UI, using operational transforms to ensure zero-collision synchronization across any number of editing clients.

Simply navigate to a directory you want to share, run leaps, open the hosted page in your browser and direct any friends on your LAN to the same page. You can now collectively edit any documents in that directory.

Screenshot

Leaps can also be used as a library, with implementations of accessors for various document hosting solutions and plugable authentication layers, allowing you to build your own services to suit many service architectures.

Leaps server components are implemented in Golang, and has a client implemented in JavaScript that can currently be used with ACE, CodeMirror and Textarea editors.

To read more about the service library components and find examples check out the godocs.

To read about the JavaScript client check out the README.

Install

Leaps is a single binary, with no runtime dependencies. Just download a package for your OS from the latest releases page.

From homebrew

brew install leaps
leaps -h

Build with Go

go get github.com/jeffail/leaps/cmd/...
leaps -h

Vendoring

Versions of go above 1.6 should automatically go get all vendored libraries. Otherwise, while cloning use --recursive:

git clone https://github.com/jeffail/leaps --recursive

Or, if the repo is already cloned, get the latest libraries with:

git submodule update --init

To add new libraries simply run:

PACKAGE=github.com/jeffail/util
git submodule add https://$PACKAGE vendor/$PACKAGE"

It might be handy to set yourself a function for this in your .bashrc:

function go-add-vendor {
    git submodule add https://$1 vendor/$1
}

System compatibility

OS Status
OSX x86_64 Supported, tested
Linux x86 Supported, tested
Linux x86_64 Supported, tested
Linux ARMv5 Supported, tested
Linux ARMv7 Supported, tested
Windows x86 Supported
Windows x86_64 Supported

Contributing and customizing

Contributions are very welcome, just fork and submit a pull request.

Contact

Ashley Jeffs

Directories

Path Synopsis
cmd
leaps
Package main - This package creates the leaps command line binary.
Package main - This package creates the leaps command line binary.
lib
acl
Package acl - Contains solutions for introducing Access Control Layers to a leaps service.
Package acl - Contains solutions for introducing Access Control Layers to a leaps service.
binder
Package binder - Defines the binder type, used for managing multiple clients of a single document, ensuring that operational transforms received are ordered and dispatched across all other clients.
Package binder - Defines the binder type, used for managing multiple clients of a single document, ensuring that operational transforms received are ordered and dispatched across all other clients.
curator
Package curator - Defines the type used to interact with leaps documents.
Package curator - Defines the type used to interact with leaps documents.
http
Package http - Contains HTTP and websocket handlers for exposing curators to clients.
Package http - Contains HTTP and websocket handlers for exposing curators to clients.
store
Package store - Contains solutions for Reading/Writing leaps documents, all store types should implement the Storage interface as this is used by leaps to read and write documents.
Package store - Contains solutions for Reading/Writing leaps documents, all store types should implement the Storage interface as this is used by leaps to read and write documents.
text
Package text - Contains logic for manipulating text based operational transforms, applying them to documents and caching them within state machines for easy management.
Package text - Contains logic for manipulating text based operational transforms, applying them to documents and caching them within state machines for easy management.
util
Package util - Various miscellaneous utilities used throughout leaps lib.
Package util - Various miscellaneous utilities used throughout leaps lib.

Jump to

Keyboard shortcuts

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