FedP2P/bencode
Matt Joiner 901a8b1b36 Don't panic on int parse failures
This means for UnmarshalTypeErrors we now include context. There are still some other error types remaining that are thrown up via panic.
2021-08-12 13:46:02 +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 goimports -local 2019-08-21 20:58:40 +10: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 Don't panic on int parse failures 2021-08-12 13:46:02 +10:00
decode_test.go Don't panic on int parse failures 2021-08-12 13:46:02 +10:00
encode.go bencode: Improve support for embedded structs 2021-06-07 13:01:40 +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: Remove a lot of expensive allocations 2018-07-25 13:42:28 +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)
}