bytes-vector.ss
(module bytes-vector mzscheme
  (require (lib "etc.ss"))

  (define default-chunk-size 1024)

  (define read-bytes-list
    (opt-lambda ([chunk-size default-chunk-size] [in (current-input-port)])
      (let loop ([result '()])
        (let ([next (read-bytes chunk-size in)])
          (if (eof-object? next)
              (reverse result)
              (loop (cons next result)))))))

  (define read-bytes-vector
    (opt-lambda ([chunk-size default-chunk-size] [in (current-input-port)])
      (list->vector (read-bytes-list chunk-size in))))

  (provide read-bytes-list read-bytes-vector))