torrent/bencode
YenForYang 7b19e81fc6
bencode: get type of `big.Int` without creating instance (#651)
Nope, it doesn't really matter. But anyway, see c084706c22/cryptobyte/asn1.go (L267)
2021-09-18 12:44:47 +10: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 Don't panic on int parse failures 2021-08-12 13:46:02 +10:00
bench_test.go Drop bradfitz/iter dependency (#605) 2021-09-14 13:46:50 +10:00
both_test.go bencode: Update some test code 2016-02-23 21:47:00 +11:00
bytes.go Prevent allocation when checking interface (#649) 2021-09-18 12:36:25 +10:00
decode.go bencode: Simplify `(*Decoder).parseListInterface()` (#656) 2021-09-18 12:42:20 +10:00
decode_test.go Don't panic on int parse failures 2021-08-12 13:46:02 +10:00
encode.go bencode: get type of `big.Int` without creating instance (#651) 2021-09-18 12:44:47 +10:00
encode_test.go bencode: Fix marshalling of []byte(nil) 2018-11-27 08:57:17 +11:00
fuzz.go Fix go:build directives 2021-07-14 14:35:52 +10:00
misc.go bencode: simplify getting `marshalerType` and `unmarshalerType` (#652) 2021-09-18 12:43:53 +10:00
scanner.go bencode.scanner.ReadByte returned errors when it shouldn't have 2017-11-10 23:44:24 +11:00
tags.go Rework bencode decoding so it might support embedded structs 2021-06-07 13:01:40 +10: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)
}