![Create React App Officially Deprecated Amid React 19 Compatibility Issues](https://cdn.sanity.io/images/cgdhsj6q/production/04fa08cf844d798abc0e1a6391c129363cc7e2ab-1024x1024.webp?w=400&fit=max&auto=format)
Security News
Create React App Officially Deprecated Amid React 19 Compatibility Issues
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.
binary-file
Advanced tools
Read and write binary types in files. This library allows you to use the functions you would use on a Buffer, like readUInt32, directly on files. It is promises-based.
npm install --save binary-file
Say you want to parse a simple binary file for an UInt32 containing the length of the string that follows. With binary-file, you can simply:
'use strict';
const BinaryFile = require('binary-file');
const myBinaryFile = new BinaryFile('./file.bin', 'r');
myBinaryFile.open().then(function () {
console.log('File opened');
return myBinaryFile.readUInt32();
}).then(function (stringLength) {
return myBinaryFile.readString(stringLength);
}).then(function (string) {
console.log(`File read: ${string}`);
return myBinaryFile.close();
}).then(function () {
console.log('File closed');
}).catch(function (err) {
console.log(`There was an error: ${err}`);
});
And it looks even better with ES7 async / await:
'use strict';
const BinaryFile = require('binary-file');
const myBinaryFile = new BinaryFile('./file.bin', 'r');
(async function () {
try {
await myBinaryFile.open();
console.log('File opened');
const stringLength = await myBinaryFile.readUInt32();
const string = await myBinaryFile.readString(stringLength);
console.log(`File read: ${string}`);
await myBinaryFile.close();
console.log('File closed');
} catch (err) {
console.log(`There was an error: ${err}`);
}
})();
You don't have to create a Buffer to write the data read from the file, you don't have to remember the position of the cursor: everything is handled by BinaryFile.
new BinaryFile(path, mode, littleEndian = false)
Create a new instance of BinaryFile.
path
: the path of the file to openmode
: the mode in which to open the file. See fs.openlittleEndian
: endianness of the file.open()
Open the file.
Return a promise.
fulfilled when the file is opened
.size()
Get the size in bytes of the file.
Return a promise.
fulfilled with the size of the file in bytes
.tell()
Get the position of the cursor in the file.
Return the position of the cursor in the file.
.seek(position)
Set the position of the cursor in the file
position
: the position where to place the cursorReturn the new position.
.close()
Close the file.
Return a promise.
fulfilled when the file is closed
.read(length, position = null)
Read a Buffer in the file.
length
: the number of bytes to readposition
: the position where to read the Buffer in the file. If not set, it will use the internal cursor. If set, the internal cursor won't moveReturn a promise.
fulfilled with the Buffer when the reading is done
.readInt8(position = null)
,.readUInt8(position = null)
,.readInt16(position = null)
,.readUInt16(position = null)
,.readInt32(position = null)
,.readUInt32(position = null)
,.readInt64(position = null)
,.readUInt64(position = null)
,.readFloat(position = null)
,.readDouble(position = null)
Read a binary type in the file.
position
: the position where to read the binary type in the file. If not set, it will use the internal cursor. If set, the internal cursor won't moveReturn a promise.
fulfilled with the value read when the reading is done
.readString(length, position = null)
Read a string in the file.
length
: the number of bytes of the string to readposition
: the position where to read the string in the file. If not set, it will use the internal cursor. If set, the internal cursor won't moveReturn a promise.
fulfilled with the string read when the reading is done
.write(buffer, position = null)
Read a Buffer in the file.
buffer
: the Buffer to writeposition
: the position where to write the Buffer in the file. If not set, it will use the internal cursor. If set, the internal cursor won't moveReturn a promise.
fulfilled with the number of bytes written when the writing is done
.writeInt8(value, position = null)
,.writeUInt8(value, position = null)
,.writeInt16(value, position = null)
,.writeUInt16(value, position = null)
,.writeInt32(value, position = null)
,.writeUInt32(value, position = null)
,.writeInt64(value, position = null)
,.writeUInt64(value, position = null)
,.writeFloat(value, position = null)
,.writeDouble(value, position = null)
Write a binary type in the file.
value
: the value to write in the corresponding binary typeposition
: the position where to write the binary type in the file. If not set, it will use the internal cursor. If set, the internal cursor won't moveReturn a promise.
fulfilled with the number of bytes written when the writing is done
.writeString(string, position = null)
Write a string in the file.
string
: the string to writeposition
: the position where to write the string in the file. If not set, it will use the internal cursor. If set, the internal cursor won't moveReturn a promise.
fulfilled with the number of bytes written when the writing is done
FAQs
Read and write binary types in files
The npm package binary-file receives a total of 2,115 weekly downloads. As such, binary-file popularity was classified as popular.
We found that binary-file demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.