code: func (c *Conn) MatchPrefix(key string, maxrecords int64) ([]string, error) {
  	keystransmit := []KV{
  		{"prefix", []byte(key)},
  		{"max", []byte(strconv.FormatInt(maxrecords, 10))},
  	}
  	code, m, err := c.doRPC("/rpc/match_prefix", keystransmit)
  	if err != nil {
  		return nil, err
  	}
  	if code != 200 {
  		return nil, makeError(m)
  	}
  	res := make([]string, 0, len(m))
  	for _, kv := range m {
  		if kv.Key[0] == '_' {
  			res = append(res, string(kv.Key[1:]))
  		}
  	}
  	if len(res) == 0 {
  		// yeah, gokabinet was weird here.
  		return nil, ErrSuccess
  	}
  	return res, nil
  }
docs: // MatchPrefix performs the match_prefix operation against the server
  // It returns a sorted list of strings.
  // The error may be ErrSuccess in the case that no records were found.
  // This is for compatibility with the old gokabinet library.