opusdev/vector-similarity-api
1
1# memory-pager2 3Access memory using small fixed sized buffers instead of allocating a huge buffer.4Useful if you are implementing sparse data structures (such as large bitfield).5 67 8```9npm install memory-pager10```11 12## Usage13 14``` js15var pager = require('paged-memory')16 17var pages = pager(1024) // use 1kb per page18 19var page = pages.get(10) // get page #1020 21console.log(page.offset) // 1024022console.log(page.buffer) // a blank 1kb buffer23```24 25## API26 27#### `var pages = pager(pageSize)`28 29Create a new pager. `pageSize` defaults to `1024`.30 31#### `var page = pages.get(pageNumber, [noAllocate])`32 33Get a page. The page will be allocated at first access.34 35Optionally you can set the `noAllocate` flag which will make the36method return undefined if no page has been allocated already37 38A page looks like this39 40``` js41{42 offset: byteOffset,43 buffer: bufferWithPageSize44}45```46 47#### `pages.set(pageNumber, buffer)`48 49Explicitly set the buffer for a page.50 51#### `pages.updated(page)`52 53Mark a page as updated.54 55#### `pages.lastUpdate()`56 57Get the last page that was updated.58 59#### `var buf = pages.toBuffer()`60 61Concat all pages allocated pages into a single buffer62 63## License64 65MIT66 