reduct-js
v1.13.0
Published
ReductStore Client SDK for Javascript/NodeJS/Typescript
Downloads
291
Maintainers
Readme
ReductStore Client SDK for JavaScript
The ReductStore Client SDK for JavaScript is an asynchronous HTTP client for interacting with a ReductStore instance from a JavaScript application. It is written in TypeScript and provides a set of APIs for accessing and manipulating data stored in ReductStore.
Features
- Promise-based API for easy asynchronous programming
- Support for ReductStore HTTP API v1.13
- Token-based authentication for secure access to the database
- Labeling for read-write operations and querying
- Batch operations for efficient data processing
Getting Started
To get started with the ReductStore Client SDK for JavaScript, you'll need to have ReductStore installed and running on your machine. You can find instructions for installing ReductStore here.
Once you have ReductStore up and running, you can install the ReductStore Client SDK for JavaScript using npm:
npm i reduct-js
Then, you can use the following example code to start interacting with your ReductStore database from your JavaScript application:
const { Client, QuotaType } = require("reduct-js");
const main = async () => {
// 1. Create a ReductStore client
const client = new Client("http://127.0.0.1:8383", {
apiToken: "my-token",
});
// 2. Get or create a bucket with 1Gb quota
const bucket = await client.getOrCreateBucket("my-bucket", {
quotaType: QuotaType.FIFO,
quotaSize: BigInt(1e9),
});
// 3. Write some data with timestamps and labels to the 'entry-1' entry
const us = (dateString) => BigInt(Date.parse(dateString) * 1000);
let record = await bucket.beginWrite("sensor-1", {
ts: us("2021-01-01T11:00:00Z"),
labels: {
score: 10,
},
});
await record.write("<Blob data>");
record = await bucket.beginWrite("sensor-1", {
ts: us("2021-01-01T11:00:01Z"),
labels: {
score: 20,
},
});
await record.write("<Blob data>");
// 4. Query the data by time range and condition
for await (const record of bucket.query(
"sensor-1",
us("2021-01-01T11:00:00Z"),
us("2021-01-01T11:00:02Z"),
{
when: { "&score": { $gt: 10 } },
},
)) {
console.log(`Record timestamp: ${record.time}`);
console.log(`Record size: ${record.size}`);
console.log(await record.readAsString());
}
};
main().then(() => console.log("done"));
For more examples, see the Guides section in the ReductStore documentation.