Skip to content

dipakparmar/rspamd-node-client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 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.

About

A TypeScript Node.js client for Rspamd.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published