Uses of Package
org.apache.cassandra.io.util
Packages that use org.apache.cassandra.io.util
Package
Description
File transfer
Hints subsystem consists of several components.
Non-blocking streaming with netty
-
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.batchlogClassDescriptionExtension to DataInput that provides support for reading varintsExtension to DataOutput that provides for writing ByteBuffer and Memory, potentially with an efficient implementation that is zero copy or at least has reduced bounds checking overhead.
-
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.cacheClassDescriptionRandomFileReader component that reads data from a file into a provided buffer and may have requirements over the size and alignment of reads.Extension to DataInput that provides support for reading varintsWrapper around an InputStream that provides no buffering but can decode varintsExtension to DataOutput that provides for writing ByteBuffer and Memory, potentially with an efficient implementation that is zero copy or at least has reduced bounds checking overhead.Abstract base class for DataOutputStreams that accept writes from ByteBuffer or Memory and also provide access to the underlying WritableByteChannel associated with their output stream.A thin wrapper around java.nio.file.Path to provide more ergonomic functionality.
FileHandleprovides access to a file for reading, including the ones written by variousSequentialWriterinstances, and it is typically used bySSTableReader.An off-heap region of memory that must be manually free'd when no longer needed.Interface for the classes that can be used to instantiate rebufferers over a given file. -
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.configClassDescriptionA thin wrapper around java.nio.file.Path to provide more ergonomic functionality.
-
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.cql3.selectionClassDescriptionExtension to DataInput that provides support for reading varintsExtension to DataOutput that provides for writing ByteBuffer and Memory, potentially with an efficient implementation that is zero copy or at least has reduced bounds checking overhead.
-
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.dbClassDescriptionExtension to DataInput that provides support for reading varintsExtension to DataOutput that provides for writing ByteBuffer and Memory, potentially with an efficient implementation that is zero copy or at least has reduced bounds checking overhead.A thin wrapper around java.nio.file.Path to provide more ergonomic functionality.
-
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.db.aggregationClassDescriptionExtension to DataInput that provides support for reading varintsExtension to DataOutput that provides for writing ByteBuffer and Memory, potentially with an efficient implementation that is zero copy or at least has reduced bounds checking overhead.
-
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.db.commitlogClassDescriptionInput stream around a single ByteBuffer.Extension to DataInput that provides support for reading varintsWrapper around an InputStream that provides no buffering but can decode varintsExtension to DataOutput that provides for writing ByteBuffer and Memory, potentially with an efficient implementation that is zero copy or at least has reduced bounds checking overhead.A thin wrapper around java.nio.file.Path to provide more ergonomic functionality.This is the same as DataInputBuffer, i.e.Rough equivalent of BufferedInputStream and DataInputStream wrapping a ByteBuffer that can be refilled via rebuffer.A very simple Bytebuffer pool with a fixed allocation size and a cached max allocation count.
-
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.db.compactionClassDescriptionA thin wrapper around java.nio.file.Path to provide more ergonomic functionality.
-
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.db.compaction.writersClassDescriptionA thin wrapper around java.nio.file.Path to provide more ergonomic functionality.
-
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.db.filterClassDescriptionExtension to DataInput that provides support for reading varintsExtension to DataOutput that provides for writing ByteBuffer and Memory, potentially with an efficient implementation that is zero copy or at least has reduced bounds checking overhead.
-
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.db.lifecycleClassDescriptionA thin wrapper around java.nio.file.Path to provide more ergonomic functionality.
-
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.db.marshalClassDescriptionExtension to DataInput that provides support for reading varintsExtension to DataOutput that provides for writing ByteBuffer and Memory, potentially with an efficient implementation that is zero copy or at least has reduced bounds checking overhead.
-
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.db.partitionsClassDescriptionExtension to DataInput that provides support for reading varintsExtension to DataOutput that provides for writing ByteBuffer and Memory, potentially with an efficient implementation that is zero copy or at least has reduced bounds checking overhead.
-
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.db.rowsClassDescriptionExtension to DataInput that provides support for reading varintsExtension to DataOutput that provides for writing ByteBuffer and Memory, potentially with an efficient implementation that is zero copy or at least has reduced bounds checking overhead.
-
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.db.streamingClassDescriptionA proxy of a FileChannel that: - implements reference counting - exports only thread safe FileChannel operations - wraps IO exceptions into runtime exceptions Tested by RandomAccessReaderTest.Extension to DataInput that provides support for reading varintsWrapper around an InputStream that provides no buffering but can decode varintsExtension to DataOutput that provides for writing ByteBuffer and Memory, potentially with an efficient implementation that is zero copy or at least has reduced bounds checking overhead.Rough equivalent of BufferedInputStream and DataInputStream wrapping a ByteBuffer that can be refilled via rebuffer.This class is to track bytes read from given DataInput
-
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.dhtClassDescriptionExtension to DataOutput that provides for writing ByteBuffer and Memory, potentially with an efficient implementation that is zero copy or at least has reduced bounds checking overhead.
-
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.exceptionsClassDescriptionExtension to DataInput that provides support for reading varintsExtension to DataOutput that provides for writing ByteBuffer and Memory, potentially with an efficient implementation that is zero copy or at least has reduced bounds checking overhead.
-
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.gmsClassDescriptionExtension to DataInput that provides support for reading varintsExtension to DataOutput that provides for writing ByteBuffer and Memory, potentially with an efficient implementation that is zero copy or at least has reduced bounds checking overhead.
-
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.hintsClassDescriptionA proxy of a FileChannel that: - implements reference counting - exports only thread safe FileChannel operations - wraps IO exceptions into runtime exceptions Tested by RandomAccessReaderTest.Extension to DataInput that provides support for reading varintsWrapper around an InputStream that provides no buffering but can decode varintsExtension to DataOutput that provides for writing ByteBuffer and Memory, potentially with an efficient implementation that is zero copy or at least has reduced bounds checking overhead.A thin wrapper around java.nio.file.Path to provide more ergonomic functionality.Rough equivalent of BufferedInputStream and DataInputStream wrapping a ByteBuffer that can be refilled via rebuffer.
-
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.index.sai.disk.formatClassDescriptionA thin wrapper around java.nio.file.Path to provide more ergonomic functionality.
FileHandleprovides access to a file for reading, including the ones written by variousSequentialWriterinstances, and it is typically used bySSTableReader. -
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.index.sai.disk.ioClassDescriptionA thin wrapper around java.nio.file.Path to provide more ergonomic functionality.
FileHandleprovides access to a file for reading, including the ones written by variousSequentialWriterinstances, and it is typically used bySSTableReader.Adds buffering, mark, and fsyncing to OutputStream.SequentialWriter option -
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.index.sai.disk.v1ClassDescription
FileHandleprovides access to a file for reading, including the ones written by variousSequentialWriterinstances, and it is typically used bySSTableReader. -
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.index.sai.disk.v1.bbtreeClassDescription
FileHandleprovides access to a file for reading, including the ones written by variousSequentialWriterinstances, and it is typically used bySSTableReader. -
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.index.sai.disk.v1.bitpackClassDescription
FileHandleprovides access to a file for reading, including the ones written by variousSequentialWriterinstances, and it is typically used bySSTableReader. -
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.index.sai.disk.v1.keystoreClassDescription
FileHandleprovides access to a file for reading, including the ones written by variousSequentialWriterinstances, and it is typically used bySSTableReader. -
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.index.sai.disk.v1.segmentClassDescription
FileHandleprovides access to a file for reading, including the ones written by variousSequentialWriterinstances, and it is typically used bySSTableReader. -
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.index.sai.disk.v1.trieClassDescriptionExtension to DataOutput that provides for writing ByteBuffer and Memory, potentially with an efficient implementation that is zero copy or at least has reduced bounds checking overhead.Rebufferer for reading data by a RandomAccessReader.
-
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.index.sai.disk.v1.vectorClassDescriptionExtension to DataInput that provides support for reading varintsWrapper around an InputStream that provides no buffering but can decode varints
FileHandleprovides access to a file for reading, including the ones written by variousSequentialWriterinstances, and it is typically used bySSTableReader.Rough equivalent of BufferedInputStream and DataInputStream wrapping a ByteBuffer that can be refilled via rebuffer.Adds buffering, mark, and fsyncing to OutputStream. -
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.index.sasiClassDescriptionA thin wrapper around java.nio.file.Path to provide more ergonomic functionality.
-
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.index.sasi.diskClassDescriptionExtension to DataOutput that provides for writing ByteBuffer and Memory, potentially with an efficient implementation that is zero copy or at least has reduced bounds checking overhead.A thin wrapper around java.nio.file.Path to provide more ergonomic functionality.Adds buffering, mark, and fsyncing to OutputStream.
-
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.index.sasi.utilsClassDescriptionA proxy of a FileChannel that: - implements reference counting - exports only thread safe FileChannel operations - wraps IO exceptions into runtime exceptions Tested by RandomAccessReaderTest.
-
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.ioClassDescriptionExtension to DataInput that provides support for reading varintsExtension to DataOutput that provides for writing ByteBuffer and Memory, potentially with an efficient implementation that is zero copy or at least has reduced bounds checking overhead.A thin wrapper around java.nio.file.Path to provide more ergonomic functionality.
-
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.io.compressClassDescriptionAn implementation of the DataOutputStreamPlus interface using a ByteBuffer to stage writes before flushing them to an underlying channel.Extension to DataOutput that provides for writing ByteBuffer and Memory, potentially with an efficient implementation that is zero copy or at least has reduced bounds checking overhead.Abstract base class for DataOutputStreams that accept writes from ByteBuffer or Memory and also provide access to the underlying WritableByteChannel associated with their output stream.A thin wrapper around java.nio.file.Path to provide more ergonomic functionality.An off-heap region of memory that must be manually free'd when no longer needed.Adds buffering, mark, and fsyncing to OutputStream.SequentialWriter option
-
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.io.sstableClassDescriptionExtension to DataInput that provides support for reading varintsExtension to DataOutput that provides for writing ByteBuffer and Memory, potentially with an efficient implementation that is zero copy or at least has reduced bounds checking overhead.A thin wrapper around java.nio.file.Path to provide more ergonomic functionality.
FileHandleprovides access to a file for reading, including the ones written by variousSequentialWriterinstances, and it is typically used bySSTableReader.SequentialWriter option -
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.io.sstable.formatClassDescriptionA proxy of a FileChannel that: - implements reference counting - exports only thread safe FileChannel operations - wraps IO exceptions into runtime exceptions Tested by RandomAccessReaderTest.Extension to DataInput that provides support for reading varintsExtension to DataOutput that provides for writing ByteBuffer and Memory, potentially with an efficient implementation that is zero copy or at least has reduced bounds checking overhead.A thin wrapper around java.nio.file.Path to provide more ergonomic functionality.
FileHandleprovides access to a file for reading, including the ones written by variousSequentialWriterinstances, and it is typically used bySSTableReader.Configures how the file will be read (compressed, mmapped, use cache etc.)It is a utility class for cachingMmappedRegionsprimarily used by aFileHandle.Builderwhen a handle to the same file is created multiple times (as when an sstable is opened early).Adds buffering, mark, and fsyncing to OutputStream.SequentialWriter option -
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.io.sstable.format.bigClassDescriptionExtension to DataInput that provides support for reading varintsExtension to DataOutput that provides for writing ByteBuffer and Memory, potentially with an efficient implementation that is zero copy or at least has reduced bounds checking overhead.A thin wrapper around java.nio.file.Path to provide more ergonomic functionality.
FileHandleprovides access to a file for reading, including the ones written by variousSequentialWriterinstances, and it is typically used bySSTableReader.It is a utility class for cachingMmappedRegionsprimarily used by aFileHandle.Builderwhen a handle to the same file is created multiple times (as when an sstable is opened early).Adds buffering, mark, and fsyncing to OutputStream. -
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.io.sstable.format.btiClassDescriptionA thin wrapper around java.nio.file.Path to provide more ergonomic functionality.
FileHandleprovides access to a file for reading, including the ones written by variousSequentialWriterinstances, and it is typically used bySSTableReader.Configures how the file will be read (compressed, mmapped, use cache etc.)It is a utility class for cachingMmappedRegionsprimarily used by aFileHandle.Builderwhen a handle to the same file is created multiple times (as when an sstable is opened early).Rebufferer for reading data by a RandomAccessReader.Adds buffering, mark, and fsyncing to OutputStream. -
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.io.sstable.indexsummaryClassDescriptionExtension to DataInput that provides support for reading varintsWrapper around an InputStream that provides no buffering but can decode varintsExtension to DataOutput that provides for writing ByteBuffer and Memory, potentially with an efficient implementation that is zero copy or at least has reduced bounds checking overhead.An off-heap region of memory that must be manually free'd when no longer needed.
-
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.io.sstable.keycache
-
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.io.sstable.metadataClassDescriptionExtension to DataInput that provides support for reading varintsExtension to DataOutput that provides for writing ByteBuffer and Memory, potentially with an efficient implementation that is zero copy or at least has reduced bounds checking overhead.
-
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.io.triesClassDescriptionExtension to DataOutput that provides for writing ByteBuffer and Memory, potentially with an efficient implementation that is zero copy or at least has reduced bounds checking overhead.Rebufferer for reading data by a RandomAccessReader.
-
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.io.utilClassDescriptionAn implementation of the DataOutputStreamPlus interface using a ByteBuffer to stage writes before flushing them to an underlying channel.Buffer manager used for reading from a ChunkReader when cache is not in use.A proxy of a FileChannel that: - implements reference counting - exports only thread safe FileChannel operations - wraps IO exceptions into runtime exceptions Tested by RandomAccessReaderTest.RandomFileReader component that reads data from a file into a provided buffer and may have requirements over the size and alignment of reads.Input stream around a single ByteBuffer.Extension to DataInput that provides support for reading varintsWrapper around an InputStream that provides no buffering but can decode varintsAn implementation of the DataOutputStream interface using a FastByteArrayOutputStream and exposing its buffer so copies can be avoided.Extension to DataOutput that provides for writing ByteBuffer and Memory, potentially with an efficient implementation that is zero copy or at least has reduced bounds checking overhead.Abstract base class for DataOutputStreams that accept writes from ByteBuffer or Memory and also provide access to the underlying WritableByteChannel associated with their output stream.A thin wrapper around java.nio.file.Path to provide more ergonomic functionality.
FileHandleprovides access to a file for reading, including the ones written by variousSequentialWriterinstances, and it is typically used bySSTableReader.Configures how the file will be read (compressed, mmapped, use cache etc.)An off-heap region of memory that must be manually free'd when no longer needed.It is a utility class for cachingMmappedRegionsprimarily used by aFileHandle.Builderwhen a handle to the same file is created multiple times (as when an sstable is opened early).Base class for the RandomAccessReader components that implement reading.Rebufferer for reading data by a RandomAccessReader.Interface for the classes that can be used to instantiate rebufferers over a given file.Rough equivalent of BufferedInputStream and DataInputStream wrapping a ByteBuffer that can be refilled via rebuffer.Adds buffering, mark, and fsyncing to OutputStream.SequentialWriter optionBase class for DataOutput implementations that does not have an optimized implementations of Plus methods and does no buffering.Instantiated once per RandomAccessReader, thread-unsafe. -
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.locatorClassDescriptionExtension to DataInput that provides support for reading varintsExtension to DataOutput that provides for writing ByteBuffer and Memory, potentially with an efficient implementation that is zero copy or at least has reduced bounds checking overhead.
-
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.netClassDescriptionAn implementation of the DataOutputStreamPlus interface using a ByteBuffer to stage writes before flushing them to an underlying channel.Extension to DataInput that provides support for reading varintsWrapper around an InputStream that provides no buffering but can decode varintsExtension to DataOutput that provides for writing ByteBuffer and Memory, potentially with an efficient implementation that is zero copy or at least has reduced bounds checking overhead.Abstract base class for DataOutputStreams that accept writes from ByteBuffer or Memory and also provide access to the underlying WritableByteChannel associated with their output stream.Rough equivalent of BufferedInputStream and DataInputStream wrapping a ByteBuffer that can be refilled via rebuffer.
-
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.repairClassDescriptionExtension to DataInput that provides support for reading varintsExtension to DataOutput that provides for writing ByteBuffer and Memory, potentially with an efficient implementation that is zero copy or at least has reduced bounds checking overhead.
-
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.schemaClassDescriptionExtension to DataInput that provides support for reading varintsExtension to DataOutput that provides for writing ByteBuffer and Memory, potentially with an efficient implementation that is zero copy or at least has reduced bounds checking overhead.
-
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.securityClassDescriptionA proxy of a FileChannel that: - implements reference counting - exports only thread safe FileChannel operations - wraps IO exceptions into runtime exceptions Tested by RandomAccessReaderTest.
-
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.serializersClassDescriptionExtension to DataInput that provides support for reading varintsExtension to DataOutput that provides for writing ByteBuffer and Memory, potentially with an efficient implementation that is zero copy or at least has reduced bounds checking overhead.
-
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.serviceClassDescriptionExtension to DataInput that provides support for reading varintsExtension to DataOutput that provides for writing ByteBuffer and Memory, potentially with an efficient implementation that is zero copy or at least has reduced bounds checking overhead.A thin wrapper around java.nio.file.Path to provide more ergonomic functionality.
-
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.service.paxosClassDescriptionExtension to DataInput that provides support for reading varintsExtension to DataOutput that provides for writing ByteBuffer and Memory, potentially with an efficient implementation that is zero copy or at least has reduced bounds checking overhead.
-
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.service.paxos.cleanupClassDescriptionExtension to DataInput that provides support for reading varintsExtension to DataOutput that provides for writing ByteBuffer and Memory, potentially with an efficient implementation that is zero copy or at least has reduced bounds checking overhead.
-
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.service.paxos.uncommittedClassDescriptionA thin wrapper around java.nio.file.Path to provide more ergonomic functionality.
-
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.service.snapshotClassDescriptionA thin wrapper around java.nio.file.Path to provide more ergonomic functionality.
-
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.streamingClassDescriptionAn implementation of the DataOutputStreamPlus interface using a ByteBuffer to stage writes before flushing them to an underlying channel.Extension to DataInput that provides support for reading varintsAn implementation of the DataOutputStream interface using a FastByteArrayOutputStream and exposing its buffer so copies can be avoided.An implementation of the DataOutputStream interface using a FastByteArrayOutputStream and exposing its buffer so copies can be avoided.Extension to DataOutput that provides for writing ByteBuffer and Memory, potentially with an efficient implementation that is zero copy or at least has reduced bounds checking overhead.Abstract base class for DataOutputStreams that accept writes from ByteBuffer or Memory and also provide access to the underlying WritableByteChannel associated with their output stream.
-
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.streaming.async
-
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.streaming.compressClassDescriptionExtension to DataInput that provides support for reading varintsWrapper around an InputStream that provides no buffering but can decode varintsRough equivalent of BufferedInputStream and DataInputStream wrapping a ByteBuffer that can be refilled via rebuffer.
-
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.streaming.messagesClassDescriptionExtension to DataInput that provides support for reading varintsExtension to DataOutput that provides for writing ByteBuffer and Memory, potentially with an efficient implementation that is zero copy or at least has reduced bounds checking overhead.
-
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.toolsClassDescriptionA thin wrapper around java.nio.file.Path to provide more ergonomic functionality.
-
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.triggersClassDescriptionA thin wrapper around java.nio.file.Path to provide more ergonomic functionality.
-
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.utilsClassDescriptionExtension to DataInput that provides support for reading varintsWrapper around an InputStream that provides no buffering but can decode varintsExtension to DataOutput that provides for writing ByteBuffer and Memory, potentially with an efficient implementation that is zero copy or at least has reduced bounds checking overhead.Abstract base class for DataOutputStreams that accept writes from ByteBuffer or Memory and also provide access to the underlying WritableByteChannel associated with their output stream.A thin wrapper around java.nio.file.Path to provide more ergonomic functionality.
-
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.utils.binlogClassDescriptionA thin wrapper around java.nio.file.Path to provide more ergonomic functionality.
-
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.utils.concurrentClassDescriptionAn off-heap region of memory that must be manually free'd when no longer needed.
-
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.utils.obsClassDescriptionExtension to DataOutput that provides for writing ByteBuffer and Memory, potentially with an efficient implementation that is zero copy or at least has reduced bounds checking overhead.
-
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.utils.streamhistClassDescriptionExtension to DataInput that provides support for reading varintsExtension to DataOutput that provides for writing ByteBuffer and Memory, potentially with an efficient implementation that is zero copy or at least has reduced bounds checking overhead.
-
Classes in org.apache.cassandra.io.util used by org.apache.cassandra.utils.vintClassDescriptionExtension to DataInput that provides support for reading varintsExtension to DataOutput that provides for writing ByteBuffer and Memory, potentially with an efficient implementation that is zero copy or at least has reduced bounds checking overhead.