Skip to content

dipakparmar/rspamd-node-client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

@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

Feature Status
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.