mutagen

module
v0.11.4 Latest Latest
Warning

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

Go to latest
Published: Apr 24, 2020 License: MIT

README

Mutagen

Mutagen is a new kind of remote development tool that enables your existing local tools to work with code in remote environments like cloud servers and containers. It does this by providing high-performance real-time file synchronization and flexible network forwarding. It supports synchronization and forwarding between local systems, SSH-accessible locations, and Docker containers, as well as most other infrastructure (such as Kubernetes clusters) using its tunnel transport.

Getting started

The best way to understand Mutagen and its features is to read the Overview and Getting started guides. You can find information about all of Mutagen's features in the documentation.

Installation

You can find installation instructions in the Mutagen documentation.

Community

Mutagen's community chat is the place to go for discussion, questions, and ideas:

Join the community on Spectrum

For updates about the project and its releases, you can follow Mutagen on Twitter.

Status

Mutagen is built and tested on Windows, macOS, and Linux, and it's available for many more platforms.

Tests Code coverage Report card License
Tests Code coverage Report card License

Contributing

If you'd like to contribute to Mutagen, please see the contribution documentation.

External projects

Users have built a number of cool projects to extend and integrate Mutagen into their workflows:

  • Mutagen Helper is a tool that makes the orchestration of synchronization sessions even easier by letting you define sessions with configuration files that live inside your codebase. Thanks to @Toilal!
  • docker-magento-mutagen (from Mage2click) is a Docker-based development environment for Magento that uses Mutagen for file synchronization. Thanks to @u-maxx and @shkoliar!
  • MutagenMon is a Python-based GUI for monitoring Mutagen sessions. Thanks to @rualark!

Security

Mutagen takes security very seriously. If you believe you have found a security issue with Mutagen, please practice responsible disclosure practices and send an email directly to security@mutagen.io instead of opening a GitHub issue. For more information, please see the security documentation.

Versioning and support

Mutagen uses semantic versioning for tracking releases. Before Mutagen reaches version 1.0, each minor release series will be supported for one month after the first release in the next minor release series (e.g. v0.10.x will be supported until one month after the release of v0.11.0).

The builds for each minor release series are pinned to the same Go minor release and dependency versions used for developing that series (though patch releases will be incorporated if they contain security fixes).

We reserve the right to break or bend these rules if necessary for the sake of security, e.g. discontinuing support for a minor release to which a security fix cannot be backported or upgrading Go minor versions for a release series to incorporate important security fixes. Features marked as experimental may also see breakage when necessary, though we will endeavor to keep this to a minimum.

Building

Please see the build instructions.

Unrelated projects

Please note that this project is unrelated to the Mutagen Python module used for handling audio metadata.

Directories

Path Synopsis
cmd
Package cmd contains various facilities for the command line portion of Mutagen.
Package cmd contains various facilities for the command line portion of Mutagen.
examples
pkg
agent
Package agent provides facilities for extracting, installing, and connecting to agent binaries.
Package agent provides facilities for extracting, installing, and connecting to agent binaries.
agent/transports
Package transports provides agent transport implementations.
Package transports provides agent transport implementations.
agent/transports/docker
Package docker provides the Docker transport implementation.
Package docker provides the Docker transport implementation.
agent/transports/docker/internal
Package internal provides internal utilities for the Docker transport.
Package internal provides internal utilities for the Docker transport.
agent/transports/docker/internal/docker
Package docker provides utility functions for interfacing with Docker.
Package docker provides utility functions for interfacing with Docker.
agent/transports/ssh
Package ssh provides the SSH transport implementation.
Package ssh provides the SSH transport implementation.
agent/transports/ssh/internal
Package internal provides internal utilities for the SSH transport.
Package internal provides internal utilities for the SSH transport.
agent/transports/ssh/internal/ssh
Package ssh provides utility functions for interfacing with OpenSSH.
Package ssh provides utility functions for interfacing with OpenSSH.
compression
Package compression provides simple compression facilities for wrapping streams.
Package compression provides simple compression facilities for wrapping streams.
configuration
Package configuration provides infrastructure for loading configuration information from human-readable formats.
Package configuration provides infrastructure for loading configuration information from human-readable formats.
configuration/forwarding
Package forwarding provides definitions for human-readable forwarding configuration files.
Package forwarding provides definitions for human-readable forwarding configuration files.
configuration/global
Package global provides the infrastructure need to load global configuration files.
Package global provides the infrastructure need to load global configuration files.
configuration/legacy
Package legacy provides the infrastructure for loading legacy TOML-based synchronization session configurations.
Package legacy provides the infrastructure for loading legacy TOML-based synchronization session configurations.
configuration/project
Package project provides the infrastructure need to load project configuration files.
Package project provides the infrastructure need to load project configuration files.
configuration/synchronization
Package forwarding provides definitions for human-readable forwarding configuration files.
Package forwarding provides definitions for human-readable forwarding configuration files.
configuration/types
Package types provides types useful for configuration file structures.
Package types provides types useful for configuration file structures.
daemon
Package daemon provides facilities for daemon operation.
Package daemon provides facilities for daemon operation.
encoding
Package encoding provides safe, atomic utility methods for encoding/saving to disk and loading from disk/decoding of data in common formats.
Package encoding provides safe, atomic utility methods for encoding/saving to disk and loading from disk/decoding of data in common formats.
filesystem
Package filesystem provides low-level race-free traversal mechanisms and modification operations for filesystems.
Package filesystem provides low-level race-free traversal mechanisms and modification operations for filesystems.
filesystem/behavior
Package behavior provides filesystem behavior probing facilities.
Package behavior provides filesystem behavior probing facilities.
filesystem/behavior/internal/format
Package format provides filesystem format enumerations and querying functions.
Package format provides filesystem format enumerations and querying functions.
filesystem/internal/syscall
Package syscall is an internal POSIX system call compatibility shim needed to ensure the availability of certain constants and functions across all supported POSIX platforms.
Package syscall is an internal POSIX system call compatibility shim needed to ensure the availability of certain constants and functions across all supported POSIX platforms.
filesystem/locking
Package locking provides a file locking type that is robust to abrupt process termination.
Package locking provides a file locking type that is robust to abrupt process termination.
filesystem/watching
Package watching provides a uniform interface to native filesystem watching facilities.
Package watching provides a uniform interface to native filesystem watching facilities.
filesystem/watching/internal/third_party/winfsnotify
Package winfsnotify allows the user to receive file system event notifications on Windows.
Package winfsnotify allows the user to receive file system event notifications on Windows.
forwarding
Package forwarding provides forwarding infrastructure.
Package forwarding provides forwarding infrastructure.
forwarding/endpoint
Package endpoint provides forwarding endpoint implementations.
Package endpoint provides forwarding endpoint implementations.
forwarding/endpoint/local
Package local provides a local forwarding endpoint implementation.
Package local provides a local forwarding endpoint implementation.
forwarding/endpoint/remote
Package remote provides a client/server architecture for connecting to and hosting a remote forwarding endpoint.
Package remote provides a client/server architecture for connecting to and hosting a remote forwarding endpoint.
forwarding/endpoint/remote/internal/closewrite
Package closewrite implements a simple framing protocol on top of connections to facilitate write closure (i.e.
Package closewrite implements a simple framing protocol on top of connections to facilitate write closure (i.e.
forwarding/endpoint/remote/internal/monitor
Package monitor provides a net.Conn wrapper that can intercept read and write errors.
Package monitor provides a net.Conn wrapper that can intercept read and write errors.
forwarding/protocols
Package protocols provides forwarding session protocol handler implementations.
Package protocols provides forwarding session protocol handler implementations.
forwarding/protocols/docker
Package docker provides the Docker forwarding session protocol implementation.
Package docker provides the Docker forwarding session protocol implementation.
forwarding/protocols/local
Package local provides the local forwarding session protocol implementation.
Package local provides the local forwarding session protocol implementation.
forwarding/protocols/ssh
Package ssh provides the SSH forwarding session protocol implementation.
Package ssh provides the SSH forwarding session protocol implementation.
forwarding/protocols/tunnel
Package tunnel provides a tunnel-based forwarding protocol implementation.
Package tunnel provides a tunnel-based forwarding protocol implementation.
grpcutil
Package grpc provides utility functions for use with gRPC.
Package grpc provides utility functions for use with gRPC.
housekeeping
Package housekeeping provides automated cleanup facilities for the Mutagen data directory.
Package housekeeping provides automated cleanup facilities for the Mutagen data directory.
identifier
Package identifier provides collision-resistant string-based identifiers.
Package identifier provides collision-resistant string-based identifiers.
integration
Package integration provides integration tests for Mutagen.
Package integration provides integration tests for Mutagen.
integration/fixtures/constants
Package constants provides constants that are used by integration test fixtures.
Package constants provides constants that are used by integration test fixtures.
integration/protocols/netpipe
Package netpipe provides the Mutagen netpipe protocol implementation, which is an in-memory protocol that uses Mutagen's remote endpoint infrastructure over a net.Pipe.
Package netpipe provides the Mutagen netpipe protocol implementation, which is an in-memory protocol that uses Mutagen's remote endpoint infrastructure over a net.Pipe.
ipc
Package ipc provides inter-process communication facilities.
Package ipc provides inter-process communication facilities.
logging
Package logging provides logging facilities.
Package logging provides logging facilities.
mutagen
Package mutagen provides common version and legal metadata for Mutagen.
Package mutagen provides common version and legal metadata for Mutagen.
mutagenio
Package mutagenio provides infrastructure for interfacing with mutagen.io.
Package mutagenio provides infrastructure for interfacing with mutagen.io.
process
Package process provides additional utilities for launching and managing executable processes.
Package process provides additional utilities for launching and managing executable processes.
project
Package provides project orchestration infrastructure.
Package provides project orchestration infrastructure.
prompting
Package prompt provides facilities for classifying prompts, displaying prompts, and coordinating prompters.
Package prompt provides facilities for classifying prompts, displaying prompts, and coordinating prompters.
random
Package random provides cryptographically random values.
Package random provides cryptographically random values.
selection
Package selection provides the infrastructure for labelling and selecting objects.
Package selection provides the infrastructure for labelling and selecting objects.
state
Package state provides index-based state change tracking facilities.
Package state provides index-based state change tracking facilities.
synchronization
Package session provides session management facilities, including the core synchronization loop logic.
Package session provides session management facilities, including the core synchronization loop logic.
synchronization/core
Package sync provides the core data structures and algorithms used by Mutagen.
Package sync provides the core data structures and algorithms used by Mutagen.
synchronization/endpoint
Package endpoint provides synchronization endpoint implementations.
Package endpoint provides synchronization endpoint implementations.
synchronization/endpoint/local
Package local provides a local synchronization endpoint implementation.
Package local provides a local synchronization endpoint implementation.
synchronization/endpoint/remote
Package remote provides a client/server architecture for connecting to and hosting a remote synchronization endpoint.
Package remote provides a client/server architecture for connecting to and hosting a remote synchronization endpoint.
synchronization/protocols
Package protocols provides synchronization session protocol handler implementations.
Package protocols provides synchronization session protocol handler implementations.
synchronization/protocols/docker
Package docker provides the Docker synchronization session protocol implementation.
Package docker provides the Docker synchronization session protocol implementation.
synchronization/protocols/local
Package local provides the local synchronization session protocol implementation.
Package local provides the local synchronization session protocol implementation.
synchronization/protocols/ssh
Package ssh provides the SSH synchronization session protocol implementation.
Package ssh provides the SSH synchronization session protocol implementation.
synchronization/protocols/tunnel
Package tunnel provides a tunnel-based synchronization protocol implementation.
Package tunnel provides a tunnel-based synchronization protocol implementation.
synchronization/rsync
Package rsync provides an implementation of the rsync algorithm as described in Andrew Tridgell's thesis (https://www.samba.org/~tridge/phd_thesis.pdf) and the rsync technical report (https://rsync.samba.org/tech_report).
Package rsync provides an implementation of the rsync algorithm as described in Andrew Tridgell's thesis (https://www.samba.org/~tridge/phd_thesis.pdf) and the rsync technical report (https://rsync.samba.org/tech_report).
tunneling
Package tunnel provides tunnel infrastructure.
Package tunnel provides tunnel infrastructure.
tunneling/webrtcutil
Package webrtcutil provides utilities to complement github.com/pion/webrtc.
Package webrtcutil provides utilities to complement github.com/pion/webrtc.
url
Package url provides facilities for parsing and formatting Mutagen's URL formats.
Package url provides facilities for parsing and formatting Mutagen's URL formats.
url/forwarding
Package forwarding provides the URL parsing routines for forwarding sub-URLs.
Package forwarding provides the URL parsing routines for forwarding sub-URLs.

Jump to

Keyboard shortcuts

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