JSPM

  • Created
  • Published
  • Downloads 1772
  • Score
    100M100P100Q110282F
  • License MIT

Simple and Light RPC Library for aria2

Package Exports

  • maria2
  • maria2/dist/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (maria2) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

maria2

Modern & Simple RPC Library for aria2.

Introduce

maria2 can control aria2c by its RPC interface.

Features

  • Simple and Light (Just 4.12KB after minified)
  • Better TypeScript IDE Support.
  • Browser and Node.js Support.

Getting Started

  • Install
bun i maria2

pnpm i maria2

yarn add maria2

npm i maria2
  • Run aria2c with RPC options, for example
aria2c --enable-rpc=true --rpc-listen-all=true --rpc-allow-origin-all=true --rpc-listen-port=6800
  • Connect by WebSocket
import { aria2, close, createWebSocket, open } from 'maria2'

const conn = await open(createWebSocket('ws://localhost:6800/jsonrpc'))

const version = await aria2.getVersion(conn)

console.log(version)

close(conn)
  • Connect by HTTP
import { aria2, close, createHTTP, open } from '.'

const conn = await open(createHTTP('ws://localhost:6800/jsonrpc'))

const version = await aria2.getVersion(conn)

console.log(version)

close(conn)
  • Multicall
import { close, open, system } from 'maria2'

const conn = await open(
  new WebSocket('ws://localhost:6800/jsonrpc')
)

// All typed
const [result0, result1] = await system.multicall({
  methodName: 'aria2.getVersion',
  params: []
}, {
  methodName: 'aria2.getGlobalStat',
  params: []
})

close(conn)

Credits

License

MIT License © 2023-present Hydration