func Encoders() []string {
	r := make([]string, len(encoders))
	i := 0
	for k := range encoders {
		r[i] = k
		i++
	}
	return r
}
Encoders return the list of encoders names
package encoder
import (
	"bytes"
	"fmt"
	"strings"
	"time"
	"github.com/uber/storagetapper/types"
)
type encoderConstructor func(service, db, table, input string, output string, version int) (Encoder, error)
var encoders map[string]encoderConstructor
var Internal Encoder
func registerPlugin(name string, init encoderConstructor) {
	if encoders == nil {
		encoders = make(map[string]encoderConstructor)
	}
	encoders[name] = init
}
type Encoder interface {
	Row(tp int, row *[]interface{}, seqNo uint64, ts time.Time) ([]byte, error)
	CommonFormat(cf *types.CommonFormatEvent) ([]byte, error)
	EncodeSchema(seqNo uint64) ([]byte, error)
	UpdateCodec() error
	Type() string
	Schema() *types.TableSchema
	UnwrapEvent(data []byte, cfEvent *types.CommonFormatEvent) (payload []byte, err error)
	DecodeEvent(b []byte) (*types.CommonFormatEvent, error)
}