cl-bencode supports all four different types of bencode values.
- byte strings as strings or byte vectors
- integers as integers
- lists as lists
- and dictionaries as hashtables
It's proven capable of roundtripping several torrents found in the wild.
https://github.com/nja/cl-bencode
Quick assessment (2023-06-11)
- Methods on flexi-stream are problematic because flexi-stream is a mixin, not a stream.
- So, for example, MKCL won't compile write-byte for something declared to be a flexi-stream.
- As an aside, recall that trivial-gray-streams has deprecated the trivial-gray-stream-mixin.
- With the flexi-streams issue resolved, cl-bencode passes all tests in both CCL and MKCL.
MIT-LICENSE