1.0.0 • Published 3 years ago
realtime-leaderboard v1.0.0
Features
- Lightweight: no dependency requirements other than your redis client.
- Different Redis client support: This package works with redis or ioredis clients.
- Promise based
- TypeScript definitions
- Tested
- Powerful & Quick for over million users.
- Multiple real-time leaderboards
- Different Score Update Strategies: Different score update strategies can be set according to your app business logic for each leaderboard. More: Score Update Strategies
Installation
Install package(s)
$ npm install realtime-leaderboard
⚠️ Make sure you already have redis client, if you don't, redis or ioredis can be installed.
$ npm install redis
or $ npm install ioredis
Create || Get your redis client
This package requires your redis client.
redis client initilization: more
const redis = require("redis")
const redisClient = redis.createClient({host: "localhost",port: 6379})
ioredis client initilization more
const Redis = require('ioredis');
const redisClient = new Redis({ host: "localhost", port: 6379});
Create your Real-time Leaderboard
const { Leaderboard } = require("realtime-leaderboard");
const lb = new Leaderboard(redisClient, "leaderboardId", { update: "createAndUpdateIfGrater" });
Leaderboard Method Example
await lb.updateUser("user1", 15) // creates user1 since user not exist
await lb.createUser("user2", 32) // creates user2
await lb.updateUser("user1", 200) // update user1 since newScore is greater
const board = await lb.getListBetween(1, 7); // [{ user1 }, { user2 }]
const rank = await lb.getRank("user1") // 1
const score = await lb.getScore("user1") // 200
See more Score Update Strategies
License
1.0.0
3 years ago
0.8.5
3 years ago
0.8.4
3 years ago
0.8.6
3 years ago
0.8.2
3 years ago
0.6.11
3 years ago
0.8.1
3 years ago
0.6.10
3 years ago
0.6.9
3 years ago
0.6.7
3 years ago
0.6.8
3 years ago
0.6.6
3 years ago
0.6.3
3 years ago
0.6.2
3 years ago
0.6.5
3 years ago
0.6.4
3 years ago
0.6.1
3 years ago
0.6.0
3 years ago
0.5.0
3 years ago