open-index/open-npm huggingface dataset:
npm package: @karindustries/proxynova
Description: A scalable HTTP proxy server inspired by NGINX
Author: Arijit Kar
Latest version: 1.0.0

# ProxyNova

ProxyNova is a lightweight, scalable HTTP proxy server built with Node.js and TypeScript, inspired by NGINX. This project uses clustering and worker processes to distribute incoming HTTP requests efficiently.

## Features

- Load balancing across worker processes
- Dynamic request routing based on configuration rules
- Configurable upstream servers for proxying requests
- Easy-to-extend architecture

## Prerequisites

- Node.js (v14 or higher)
- npm or yarn

## Installation

1. Clone the repository:

   ```bash
   git clone https://github.com/DemonicAK/proxynova.git
   cd proxynova
   ```

2. Install dependencies:

   ```bash
   npm install
   # or
   yarn install
   ```

## Configuration

The server is configured using a YAML file specifying server rules and upstream servers. Example `config.yaml`:

```yaml
server:
  listen: 3000
  workers: 4
  headers:
    - key: "Content-Type"
      value: "application/json"
    - key: "Cache-Control"
      value: "no-cache"
  upstreams:
    - id: "service1"
      url: "http://localhost:4000"
    - id: "service2"
      url: "http://localhost:5000"
  rules:
    - path: "/api"
      upstreams: ["service1", "service2"]
    - path: "/auth"
      upstreams: ["service1"]

```


## Running the Server

```bash
npm run build  # Compile TypeScript files
node dist/index.js --config path/to/config.yaml
```

The server will start on the specified port with the configured number of workers.

## Project Structure

```
├── src
│   ├── config-schema.ts      # Schema for configuration validation
│   ├── server-schema.ts      # Schema for inter-process messaging
│   ├── config.ts             # Configuration parser and validator
│   ├── server.ts             # Main server logic with clustering
│   └── index.ts              # Entry point for the server
├── config.yaml               # Example configuration file
├── package.json
├── tsconfig.json
└── README.md
```

## Commands

- **Build the project:**

  ```bash
  npm run build
  ```

- **Start the server:**

  ```bash
  node dist/index.js --config path/to/config.yaml
  ```

## Future Enhancements

- HTTPS support
- Dynamic configuration reload without downtime
- Advanced load-balancing strategies (Round Robin, Least Connections)

## License

- Dynamic configuration reload without downtime
- Advanced load-balancing strategies (Round Robin, Least Connections)

## **License**

This project is licensed under the MIT License.
npm package: @karinjs/adapter-icqq
Description: icqq adapter
Author: karin
Latest version: 1.7.0

# icqq 适配器

## 安装插件

1. 在你的项目根目录新建文件 `.npmrc` ，并录入以下内容

```text
@icqqjs:registry=https://npm.pkg.github.com
```

2. 登录账户

在karin根目录执行以下命令，按照提示进行操作

```bash
npm login --scope=@icqqjs --auth-type=legacy --registry=https://npm.pkg.github.com

# 回车，根据提示登录github

UserName: # 你的github账号 请填写小写
Password: # 前往 https://github.com/settings/tokens/new  获取，scopes勾选 read:packages
E-Mail: # 你的公开邮箱地址
```

3. 安装icqq依赖

在Karin根目录执行下方命令

```bash
pnpm add icqq@npm:@icqqjs/icqq -w
```

4. 安装插件

```bash
pnpm add @karinjs/adapter-icqq -w
```

## 配置

配置文件参考
配置文件目录 `@karinjs/@karinjs-adapter-icqq/config/config.json`

```json
{
  "sign_api_addr": "签名地址", // 默认签名地址
  "list": [
    {
      "enable": true, // 是否启用该账号
      "qq": 114514, // QQ账号
      "password": "114514", // QQ密码，为空则扫码登录
      "cfg": {
        "platform": 2, // 登录设备平台 1:安卓手机、 2:安卓平板 、 3:安卓手表、 4:MacOS 、 5:iPad 、 6:Tim
        "ver": "", // 协议版本 不填默认最新
        "sign_api_addr": "", // 签名服务器地址 不设置将使用默认地址
        "ignore_self": true, // 群聊和频道中过滤自己的消息
        "cache_group_member": true // 是否缓存群员列表，群多的时候(500~1000)会多占据约100MB+内存
      }
    },
    {
      "qq": 1111, // QQ账号2
      "password": "11111", // QQ密码2，为空则扫码登录
      "cfg": {
        "platform": 2, // 登录设备平台 1:安卓手机、 2:安卓平板 、 3:安卓手表、 4:MacOS 、 5:iPad 、 6:Tim
        "ver": "", // 协议版本 不填默认最新
        "sign_api_addr": "", // 签名服务器地址 不设置将使用默认地址
        "ignore_self": true, // 群聊和频道中过滤自己的消息
        "cache_group_member": true // 是否缓存群员列表，群多的时候(500~1000)会多占据约100MB+内存
      }
    }
  ]
}

```

## 鸣谢

感谢`hlhs`提供的自动过滑块~
npm package: @karinjs/adapter-icqq-old
Description: icqq adapter
Author: karin
Latest version: 1.3.15

# icqq 适配器

## 安装插件

> [!IMPORTANT]
> 如果不知道什么是`token` 那就安装`无token`版本即可
> 如果没有`token`，更建议使用其他协议

<details>
<summary>无token版本</summary>

```bash
pnpm add @karinjs/adapter-icqq-old -w
```

</details>

<details>
<summary>有token点击展开查看</summary>


1. 在你的项目根目录新建文件 `.npmrc` ，并录入以下内容

```text
@icqqjs:registry=https://npm.pkg.github.com
```

2. 登录账户

在karin根目录执行以下命令，按照提示进行操作

```bash
npm login --scope=@icqqjs --auth-type=legacy --registry=https://npm.pkg.github.com

# 回车，根据提示登录github

UserName: # 你的github账号 请填写小写
Password: # 前往 https://github.com/settings/tokens/new  获取，scopes勾选 read:packages
E-Mail: # 你的公开邮箱地址
```

3. 安装插件

```bash
pnpm add @karinjs/adapter-icqq -w
```

</details>

## 配置

> 目前暂时只支持手动配置

推荐先运行一次 生成配置文件夹

```bash
node .
```

打开 `config/plugin/@karinjs/adapter-icqq` 文件夹，创建`config.yaml`文件，填入以下内容

```yaml
# 默认签名服务器地址
sign_api_addr: sign地址

list:
  - qq: QQ号
    password: 密码
    cfg:
      # 登录设备平台 1:安卓手机、 2:安卓平板 、 3:安卓手表、 4:MacOS 、 5:iPad 、 6:Tim
      platform: 2
      # 协议版本 不填默认最新
      ver: ""
      # 群聊和频道中过滤自己的消息
      ignore_self: true
      # 签名服务器地址 不设置将使用默认地址
      sign_api_addr: ""
      # 是否缓存群员列表，群多的时候(500~1000)会多占据约100MB+内存
      cache_group_member: true
  - qq: QQ号2
    password: QQ密码2
    cfg:
      # 登录设备平台 1:安卓手机、 2:安卓平板 、 3:安卓手表、 4:MacOS 、 5:iPad 、 6:Tim
      platform: 2
      # 协议版本 不填默认最新
      ver: ""
      # 群聊和频道中过滤自己的消息
      ignore_self: true
      # 签名服务器地址 不设置将使用默认地址
      sign_api_addr: ""
      # 是否缓存群员列表，群多的时候(500~1000)会多占据约100MB+内存
      cache_group_member: true

```

## 鸣谢

感谢`hlhs`提供的自动过滑块~
npm package: @karinjs/art-template
Description: JavaScript Template Engine
Author: tangbin
Latest version: 1.1.0

# @karinjs/art-template

[![NPM Version](https://img.shields.io/npm/v/@karinjs/art-template.svg)](https://npmjs.org/package/@karinjs/art-template)
[![Node.js Version](https://img.shields.io/node/v/@karinjs/art-template.svg)](http://nodejs.org/download/)

art-template 是一个简约、超快的模板引擎。它采用作用域预声明的技术来优化模板渲染速度，从而获得接近 JavaScript 极限的运行性能，并且同时支持 NodeJS 和浏览器。

本项目是对原 art-template 的重新打包优化版本，使用 vite 进行构建，大幅减小了包体积和依赖数量。

## 特性

1. 拥有接近 JavaScript 渲染极限的的性能
2. 调试友好：语法、运行时错误日志精确到模板所在行
3. 支持 Express、Koa、Webpack
4. 支持模板继承与子模板
5. 浏览器版本仅 6KB 大小
6. 零依赖，包体积小（从原版的 8.3MB 减小到 382KB）
7. 对源代码无任何修改，发布到`npm`上的所有操作均由`github actions`自动完成
8. 仅支持 ESM 格式

## 安装

```bash
# npm
npm install @karinjs/art-template

# yarn
yarn add @karinjs/art-template

# pnpm
pnpm add @karinjs/art-template
```

### 使用别名安装（兼容旧版本）

如果你正在从原版 art-template 升级，可以使用包别名方式安装，这样无需修改任何代码：

```bash
# npm 别名安装
npm install art-template@npm:@karinjs/art-template

# yarn 别名安装
yarn add art-template@npm:@karinjs/art-template

# pnpm 别名安装
pnpm add art-template@npm:@karinjs/art-template
```

或者在 `package.json` 中配置别名：

```json
{
  "dependencies": {
    "art-template": "npm:@karinjs/art-template"
  }
}
```

然后执行安装命令：

```bash
npm install
# 或
yarn
# 或
pnpm install
```

## 优化对比

| 指标     | 原版 art-template | @karinjs/art-template |
| -------- | ----------------- | --------------------- |
| 包体积   | 8.3MB             | 382KB                 |
| 依赖数量 | 33个              | 0个                   |
| 模块格式 | CommonJS/UMD      | 仅 ESM                |

数据来源：[pkg-size.dev/art-template](https://pkg-size.dev/art-template)

## 版本更新

- 2025-03-29:
  - 使用 tsup 重新打包
  - 移除所有外部依赖
  - 减小包体积
  - 讨厌`ci`每次碰到`ci`都会发生不幸...
- 2025-04-14:
  - 将`tsup`修改为使用`vite`
  - 仅支持 ESM 格式: 实现原理为先把`art-template`打包成单个`cjs`文件，随后对`cjs`文件进行二次打包成`esm`