FedP2P/bencode
Matt Joiner 33bfa908d2 bencode.Decoder.Decode: Don't assume panic values are type error 2018-02-13 00:55:15 +11:00
..
testdata bencode: Use the testdata convention in tests 2016-02-23 21:31:15 +11:00
README.md The bencode README is markdown 2017-09-12 18:31:56 +10:00
api.go bencode: Unmarshal now returns an error on unused trailing bytes 2018-02-13 00:21:28 +11:00
both_test.go bencode: Update some test code 2016-02-23 21:47:00 +11:00
bytes.go Make bencode.Bytes work with pointer and nonpointer receivers 2016-08-26 20:29:29 +10:00
decode.go bencode.Decoder.Decode: Don't assume panic values are type error 2018-02-13 00:55:15 +11:00
decode_test.go bencode: Support unmarshalling strings into slices of kind Uint8 2018-02-13 00:44:05 +11:00
encode.go bencode: Add ignore_unmarshal_type_error tag 2018-01-27 14:31:46 +11:00
encode_test.go bencode: Handle encoding big.Ints 2017-11-08 21:34:24 +11:00
fuzz.go bencode: Fuzz 2015-08-23 15:59:49 +10:00
scanner.go bencode.scanner.ReadByte returned errors when it shouldn't have 2017-11-10 23:44:24 +11:00
tags.go bencode: Add ignore_unmarshal_type_error tag 2018-01-27 14:31:46 +11:00

README.md

Bencode encoding/decoding sub package. Uses similar API design to Go's json package.

Install

go get github.com/anacrolix/torrent

Usage

package demo

import (
	bencode "github.com/anacrolix/torrent/bencode"
)

type Message struct {
	Query    string `json:"q,omitempty" bencode:"q,omitempty"`
}

var v Message

func main(){
	// encode
	data, err := bencode.Marshal(v)
	if err != nil {
		log.Fatal(err)
	}
	
	//decode
	err := bencode.Unmarshal(data, &v)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Println(v)
}