This is an implementation of a pre-SRFI specification by John Cowan which provides bytestrings for Scheme. It should be portable to any R7RS-small implementation with SRFI 1/(scheme list), SRFI 151/(scheme bitwise), and one of Scheme's string libraries (one of SRFIs 152, 130, or 13). In addition, SRFI 145 and (scheme bytevector) are optional dependencies.


This implementation provides the following additional procedures for inspecting error objects raised by some bytestring procedures; namely, those satisfying bytestring-error?:

(bytestring-error-message error-object)

Returns the message (string) encapsulated by error-object.

(bytestring-error-irritants error-object)

Returns a list of the irritants encapsulated by error-object.

Implementation Notes

(hex-string->bytevector s) returns false if s cannot be interepreted as a base 16 number, in the sense of string->number.


The implementation of hex-string and base64 encoding and decoding is from Alex Shinn's chibi-scheme. This code is found in the hex.scm and base64.scm files, along with the chibi-scheme license.

The implementation of several functions is heavily inspired by Olin Shivers's SRFI 13.

Of course, any misuse of Alex's or Olin's code or ideas is purely my own.


Wolfgang Corcoran-Mathe

Email: wcm at sigwinch dot xyzzy minus the zy


This is free software released under the MIT/X license. See LICENSE for details.