transmission-native
Native bindings for libtransmission.
Installation
The npm package offers prebuilt binaries only for Linux x64 for now.
Please refer to development for other systems.
Usage
const Transmission = require('transmission-native')
const tr = new Transmission('./transmission', 'transmission')
const response = await tr.request({ method: 'session-get' })
const message = {
method: 'torrent-add',
arguments: {
filename: 'https://webtorrent.io/torrents/tears-of-steel.torrent'
}
}
const reponse = await tr.request(message)
console.log(response)
tr.saveSettings()
tr.close()
Please refer to transmission's rpc-spec.md to find what methods and arguments are expected.
API
tr = new Transmission(configDir, appName)
Create a transmission instance with a specific configuration folder and application name.
configDir
is the path where settings and state of the transmission process will be loaded and stored.
tr.request(message)
Make a request to the transmission instance.
message
is an object expected by transmissions's rpc-spec.md.
const message = { method: 'session-get' }
const reponse = await tr.request(message)
console.log(response)
tr.request(message, (err, response) => {
if (err) throw err
console.log(response)
})
tr.saveSettings()
Save transmission settings.
tr.close()
Save settings and close the session.
Development
You'll need to install required build tools and libraries for your platform in order to compile libtransmission:
Fedora / RHEL
sudo dnf install cmake gcc-c++ libcurl-devel openssl-devel
Windows
vcpkg install curl --triplet=x64-windows-static
vcpkg install openssl --triplet=x64-windows
npm run fetch-deps
npm run build-transmission
npm install
npm test
License
GPL-3.0