0.0.1-beta • Published 12 months ago

@dipakparmar/rspamd-client v0.0.1-beta

Weekly downloads
-
License
AGPL-3.0
Repository
github
Last release
12 months ago

@dipakparmar/rspamd-client

npm version Downloads/week License

A TypeScript Node.js client for Rspamd.

Note: This package is currently in alpha and under active development. Use with caution in production environments.

Table of Contents

Installation

pnpm add @dipakparmar/rspamd-client

Usage

import { RspamdClient } from '@dipakparmar/rspamd-client';

const client = new RspamdClient({
  host: 'localhost',
  port: 11333,
});

const rawEmail = fs.readFileSync('email.eml', 'utf8');

async function checkSpam() {
  try {
    const result = await client.check(rawEmail);
    console.log('Check result:', result);
  } catch (error) {
    console.error('Error:', error);
  }
}

checkSpam();

API

RspamdClient

Constructor

new RspamdClient(options?: Partial<RspamdClientOptions>)
Options
  • host (string): The Rspamd server host. Default: 'localhost'
  • port (number): The Rspamd server port. Default: 11333
  • timeout (number): Request timeout in milliseconds. Default: 5000
  • https (boolean): Use HTTPS for connections. Default: false
  • debug (boolean): Enable debug logging. Default: false

Methods

check(message: string): Promise<RspamdCheckV2Response>

Checks a message for spam using Rspamd's /checkv2 endpoint.

Roadmap

FeatureStatus
Basic /checkv2 functionality✅ Completed
Error handling and timeouts✅ Completed
Comprehensive testing🚧 In Progress
Support for all worker endpoints🚧 In Progress
Support for controller endpoints📅 Planned
Improved documentation📅 Planned
Performance optimizations📅 Planned

Contributions are welcome! If you'd like to contribute to any of these features or have suggestions for new ones, please open an issue or submit a pull request.

Other Features and Endpoints

Normal Worker HTTP Endpoints

  • /checkv2 (POST) - Checks message and returns action (Implemented)
  • /ping (GET) - Returns a pong HTTP reply (could be used for monitoring)

Controller HTTP Endpoints

  • /fuzzyadd (POST) - Adds message to fuzzy storage
  • /fuzzydel (POST) - Removes message from fuzzy storage
  • /checkv2 (POST) - Checks message and returns action (same as normal worker)

Various GET endpoints are also available on the controller, including /stat, /graph, /history, /actions, /maps, and more. For a full list and details, please refer to the Rspamd documentation.

Contributing

Contributions, issues, and feature requests are welcome! Feel free to check issues page.

License

This project is AGPL-3.0 licensed.