GithubHelp home page GithubHelp logo

libtorrent-rasterbar's Introduction

node-libtorrent

node-libtorrent provides native bindings to libtorrent rastebar as a Node.js addon.

Getting started

Execute in command line:

$ npm install node-libtorrent

or copy repository and build bindings manually

$ git clone git://github.com/fanatid/node-libtorrent.git
$ cd node-libtorrent
$ npm install -g node-gyp
$ node-gyp configure
$ node-gyp build

Examples

Simple client

lt = require "../build/Release/libtorrent"

s = new lt.session()
s.listen_on([6881, 6889])
ti = new lt.torrent_info "./test.torrent"
th = s.add_torrent
  ti: ti
  save_path: "./test_torrent"
main = ->
  st = th.status()
  console.log "#{st.progress*100} complete \
(down: #{st.download_rate / 1000} kb/s | up: #{st.upload_rate / 1000} kB/s | \
peers: #{st.num_peers})"
  setTimeout main, 2500
main()

Create torrent

lt = require "../build/Release/libtorrent"

fs = new lt.file_storage()
lt.add_files fs, "./src"
ct = new lt.create_torrent(fs)
lt.set_piece_hashes ct, "."
t = lt.bencode ct.generate()
console.log t

libtorrent-rasterbar's People

Contributors

dsavenko avatar fanatid avatar mscdex avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

libtorrent-rasterbar's Issues

NPM won't install libtorrent-node on OpenSUSE Tumbleweed

Node version: v6.9.3
Log:

ran with npm install --save libtorrent-node

> [email protected] install /home/dagny/code/monorrent/node_modules/node-libtorrent
> node-gyp rebuild

make: Entering directory '/home/dagny/code/monorrent/node_modules/node-libtorrent/build'
  CXX(target) Release/obj.target/libtorrent/src/module.o
../src/module.cpp: In function ‘void nodelt::Initialize(v8::Handle<v8::Object>)’:
../src/module.cpp:41:17: error: ‘NewSymbol’ is not a member of ‘v8::String’
     target->Set(String::NewSymbol("version"),       String::New(LIBTORRENT_VERSION));
                 ^~~~~~
../src/module.cpp:41:53: error: ‘New’ is not a member of ‘v8::String’
     target->Set(String::NewSymbol("version"),       String::New(LIBTORRENT_VERSION));
                                                     ^~~~~~
../src/module.cpp:42:17: error: ‘NewSymbol’ is not a member of ‘v8::String’
     target->Set(String::NewSymbol("version_major"), Integer::New(LIBTORRENT_VERSION_MAJOR));
                 ^~~~~~
../src/module.cpp:42:90: error: no matching function for call to ‘v8::Integer::New(int)’
     target->Set(String::NewSymbol("version_major"), Integer::New(LIBTORRENT_VERSION_MAJOR));
                                                                                          ^
In file included from /usr/include/node/node.h:42:0,
                 from ../src/module.cpp:1:
/usr/include/node/v8.h:2558:25: note: candidate: static v8::Local<v8::Integer> v8::Integer::New(v8::Isolate*, int32_t)
   static Local<Integer> New(Isolate* isolate, int32_t value);
                         ^~~
/usr/include/node/v8.h:2558:25: note:   candidate expects 2 arguments, 1 provided
../src/module.cpp:43:17: error: ‘NewSymbol’ is not a member of ‘v8::String’
     target->Set(String::NewSymbol("version_minor"), Integer::New(LIBTORRENT_VERSION_MINOR));
                 ^~~~~~
../src/module.cpp:43:90: error: no matching function for call to ‘v8::Integer::New(int)’
     target->Set(String::NewSymbol("version_minor"), Integer::New(LIBTORRENT_VERSION_MINOR));
                                                                                          ^
In file included from /usr/include/node/node.h:42:0,
                 from ../src/module.cpp:1:
/usr/include/node/v8.h:2558:25: note: candidate: static v8::Local<v8::Integer> v8::Integer::New(v8::Isolate*, int32_t)
   static Local<Integer> New(Isolate* isolate, int32_t value);
                         ^~~
/usr/include/node/v8.h:2558:25: note:   candidate expects 2 arguments, 1 provided
make: *** [libtorrent.target.mk:95: Release/obj.target/libtorrent/src/module.o] Error 1
make: Leaving directory '/home/dagny/code/monorrent/node_modules/node-libtorrent/build'
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/lib64/node_modules/npm/node_modules/node-gyp/lib/build.js:276:23)
gyp ERR! stack     at emitTwo (events.js:106:13)
gyp ERR! stack     at ChildProcess.emit (events.js:191:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:215:12)
gyp ERR! System Linux 4.9.6-1-default
gyp ERR! command "/usr/bin/node" "/usr/lib64/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/dagny/code/monorrent/node_modules/node-libtorrent
gyp ERR! node -v v6.9.3
gyp ERR! node-gyp -v v3.4.0
gyp ERR! not ok 
npm ERR! Linux 4.9.6-1-default
npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "install" "--save" "node-libtorrent"
npm ERR! node v6.9.3
npm ERR! npm  v3.10.10
npm ERR! code ELIFECYCLE

npm ERR! [email protected] install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected] install script 'node-gyp rebuild'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the node-libtorrent package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs node-libtorrent
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls node-libtorrent
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /home/dagny/code/monorrent/npm-debug.log

Create a search only through the BitTorrent network

Creating a search without a server, search downloads through the hash.
For example: If the title(name) of any download calculate the hash, then you can search without trackers, you can look directly into the network by UDP.
How it works: Everyone who creates seed should input the naming of 3-5 titles, each of which will be determined by the hash. These hashes are to be assigned to the seed. Example hashes for the titles: "Terminator", "Terminator 2", "Терминатор", "Терминатор 2".
When searched, it must be performed to compare and contrast hashes seeds. Example: when searching display a list of all the names that have a only one certain desired hash, ie in the table are displayed when searching for a different distribution of the hash (which is defined by its name), each line is a separate distribution of torrents.
.
The result is a search engine that is not possible to block on any tracker. None of the copyright.
.
And of course it is obvious that this is a very complex function.
But the meaning of it is that if it is. It client will not be just the same as everyone. It client will be at 4 heads above all the clients together.
A very large popularity.
.
The creation of such a function is similar to the invention Bitcoins.

add_magnet_uri

Привет, Кирилл

Во-первых, спасибо за обёртку. А во-вторых, хотел поинтересоваться, насколько сложно добавить поддержку add_magnet_uri? Я слишком далёк от вопросов использования C++ в node и просто не понимаю, каким образом можно этот кусок вызвать из Node.

Build failed

When trying to install via npm install node-libtorrent

gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:267:23)
gyp ERR! stack     at ChildProcess.EventEmitter.emit (events.js:98:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:789:12)
gyp ERR! System Darwin 14.0.0
gyp ERR! command "node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "avenge"
gyp ERR! cwd /Users/joseym/shorts/xbmc/torrent/node_modules/node-libtorrent
gyp ERR! node -v v0.10.21
gyp ERR! node-gyp -v v1.0.2
gyp ERR! not ok

npm ERR! Darwin 14.0.0
npm ERR! argv "node" "/usr/local/bin/npm" "install" "node-libtorrent" "--save"
npm ERR! node v0.10.21
npm ERR! npm  v2.0.0
npm ERR! code ELIFECYCLE
npm ERR! [email protected] install: `node-gyp avenge`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script.
npm ERR! This is most likely a problem with the node-libtorrent package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp avenge
npm ERR! You can get their info via:
npm ERR!     npm owner ls node-libtorrent
npm ERR! There is likely additional logging output above.

Update to recent node versions

Hello,

Thanks for making these bindings. Unfortunately, I am not able to build this package, even with lower node version (I tried 4, 6 and 7 with no success). I am on Mac if that matters.

Is it possible to update this package to node 10/12?

If this package is no longer maintained, please just tell me and I'll try to work it off.

I would love to have an easy to use libtorrent bindings package 😄

Thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.