librats
librats: High-performance, lightweight P2P native library for big networks
File Explorer
Download Latest Version (.zip)- android.yml
- npm-publish.yml
- pages.yml
- rats.yml
- ifaddrs-android.c
- ifaddrs-android.h
- MainActivity.java
- activity_main.xml
- strings.xml
- AndroidManifest.xml
- build.gradle
- gradle-wrapper.jar
- gradle-wrapper.properties
- CMakeLists.txt
- librats_jni.cpp
- ErrorCode.java
- FileCompleteCallback.java
- FileOfferCallback.java
- FileProgressCallback.java
- FileTransferStatus.java
- JsonCallback.java
- LogLevel.java
- MessageCallback.java
- NatMapping.java
- PeerCallback.java
- RatsException.java
- RatsNode.java
- Security.java
- TopicCallback.java
- Transport.java
- AndroidManifest.xml
- build.gradle
- consumer-rules.pro
- gradle.properties
- gradlew
- gradlew.bat
- INTEGRATION.md
- proguard-rules.pro
- README.md
- settings.gradle
- legacy_buffers.cpp
- legacy_buffers.h
- noisec.h
- noisec_aead.c
- noisec_blake2b.c
- noisec_blake2s.c
- noisec_chacha.c
- noisec_curve25519.c
- noisec_poly1305.c
- noisec_sha256.c
- noisec_sha512.c
- stable_json.cpp
- stable_json.h
- alloc_track.cpp
- alloc_track.h
- bench.h
- bench_complex.cpp
- bench_crypto.cpp
- bench_dht.cpp
- bench_json.cpp
- bench_mem.cpp
- bench_path.cpp
- bench_poller.cpp
- bench_rx.cpp
- bench_transport.cpp
- bench_tx.cpp
- json_data.h
- net_mock.h
- CMakeLists.txt
- README.md
- ratsConfig.cmake.in
- doxygen-awesome-darkmode-toggle.js
- doxygen-awesome-fragment-copy-button.js
- doxygen-awesome-interactive-toc.js
- doxygen-awesome-paragraph-link.js
- doxygen-awesome-sidebar-only-darkmode-toggle.css
- doxygen-awesome-sidebar-only.css
- doxygen-awesome.css
- CNAME
- doxygen-custom.css
- doxygen-footer.html
- doxygen-header.html
- favicon.png
- index.html
- logo-rat.png
- logo.png
- mainpage.md
- styles.css
- 01_chat.cpp
- 02_pubsub.cpp
- 03_typed_messaging.cpp
- 04_file_transfer.cpp
- 05_dht_discovery.cpp
- 06_bittorrent_download.cpp
- 07_full_chat.cpp
- CMakeLists.txt
- README.md
- curve25519-donna.LICENSE
- ifaddrs-android.LICENSE
- noise-c.LICENSE
- poly1305-donna.LICENSE
- basic_client.js
- file_transfer.js
- gossipsub_chat.js
- index.d.ts
- index.js
- build-librats.js
- postinstall.js
- prepare-package.js
- verify-installation.js
- librats_node.cpp
- test.js
- .gitignore
- .npmignore
- binding.gyp
- INSTALLATION.md
- package-lock.json
- package.json
- README.md
- portfile.cmake
- vcpkg.json
- __init__.py
- basic_client.py
- file_transfer.py
- gossipsub_chat.py
- __init__.py
- conftest.py
- test_client.py
- test_integration.py
- __init__.py
- callbacks.py
- core.py
- ctypes_wrapper.py
- enums.py
- exceptions.py
- .gitignore
- build.py
- MANIFEST.in
- pyproject.toml
- PYTHON_BINDINGS.md
- README.md
- requirements.txt
- setup.py
- rats.cpp
- rats.h
- bencode.cpp
- bencode.h
- bitfield.cpp
- bitfield.h
- byte_io.h
- choker.cpp
- choker.h
- client.cpp
- client.h
- disk_io.cpp
- disk_io.h
- extensions.cpp
- extensions.h
- file_storage.cpp
- file_storage.h
- log.h
- magnet_uri.cpp
- magnet_uri.h
- peer_connection.cpp
- peer_connection.h
- peer_list.cpp
- peer_list.h
- piece_picker.cpp
- piece_picker.h
- reactor.cpp
- reactor.h
- resume_data.cpp
- resume_data.h
- store_buffer.cpp
- store_buffer.h
- torrent.cpp
- torrent.h
- torrent_creator.cpp
- torrent_creator.h
- torrent_info.cpp
- torrent_info.h
- tracker.cpp
- tracker.h
- types.cpp
- types.h
- address.cpp
- address.h
- bytes.h
- chained_send_buffer.cpp
- chained_send_buffer.h
- endpoint_parse.cpp
- endpoint_parse.h
- event_bus.h
- host_endpoint.h
- io_poller.cpp
- io_poller.h
- ip_address.cpp
- ip_address.h
- mpsc_queue.h
- notifier.h
- receive_buffer.cpp
- receive_buffer.h
- service_registry.h
- socket.cpp
- socket.h
- timer_queue.h
- types.cpp
- types.h
- wakeup_pipe.h
- blake2_endian.h
- blake2b.c
- blake2b.h
- blake2s.c
- blake2s.h
- chacha.c
- chacha.h
- chachapoly.c
- chachapoly.h
- crc32.cpp
- crc32.h
- curve25519.c
- curve25519.h
- hkdf.c
- hkdf.h
- noise.cpp
- noise.h
- poly1305.c
- poly1305.h
- sha1.cpp
- sha1.h
- sha256.c
- sha256.h
- sha512.c
- sha512.h
- announce.cpp
- announce.h
- bep42.cpp
- bep42.h
- dht.cpp
- dht.h
- dht_runner.cpp
- dht_runner.h
- dos_blocker.cpp
- dos_blocker.h
- find_peers.cpp
- find_peers.h
- id.h
- krpc.cpp
- krpc.h
- log.h
- node.cpp
- node.h
- node_entry.h
- observer.h
- persistence.cpp
- persistence.h
- routing_table.cpp
- routing_table.h
- rpc_manager.cpp
- rpc_manager.h
- storage.cpp
- storage.h
- transport.h
- traversal.cpp
- traversal.h
- udp_transport.cpp
- udp_transport.h
- log.h
- mdns.cpp
- mdns.h
- natpmp.cpp
- natpmp.h
- port_mapping.h
- stun.cpp
- stun.h
- upnp.cpp
- upnp.h
- circuit_service.h
- config.h
- dial_service.h
- dialer.cpp
- dialer.h
- host_events.h
- identify.cpp
- identify.h
- nat_status.cpp
- nat_status.h
- node.cpp
- node.h
- node_context.h
- peer_network.h
- peer.h
- peer_book.cpp
- peer_book.h
- peer_id.cpp
- peer_id.h
- peer_info.h
- peer_table.cpp
- peer_table.h
- handshaker.h
- identity.h
- noise_security.cpp
- noise_security.h
- plaintext_security.h
- session.h
- storage.cpp
- storage.h
- bittorrent.cpp
- bittorrent.h
- dht_discovery.cpp
- dht_discovery.h
- dht_service.h
- file_transfer.cpp
- file_transfer.h
- hole_punch.cpp
- hole_punch.h
- hole_punch_service.h
- mdns_discovery.cpp
- mdns_discovery.h
- message_json.cpp
- message_json.h
- peer_exchange.cpp
- peer_exchange.h
- ping_service.cpp
- ping_service.h
- port_mapping_service.cpp
- port_mapping_service.h
- pubsub.cpp
- pubsub.h
- reconnection.cpp
- reconnection.h
- relay.cpp
- relay.h
- relay_service.h
- connection.cpp
- connection.h
- link.h
- reactor.cpp
- reactor.h
- reactor_pool.h
- relay_link.cpp
- relay_link.h
- tcp_link.cpp
- tcp_link.h
- udp_mux.cpp
- udp_mux.h
- udp_packet.cpp
- udp_packet.h
- udp_stream.cpp
- udp_stream.h
- features.h.in
- fs.cpp
- fs.h
- json.cpp
- json.h
- logger.cpp
- logger.h
- network_monitor.cpp
- network_monitor.h
- network_utils.cpp
- network_utils.h
- os.cpp
- os.h
- rats_export.h
- version.cpp
- version.h.in
- frame.cpp
- frame.h
- message_router.cpp
- message_router.h
- main.cpp
- CMakeLists.txt
- conanfile.py
- test_package.cpp
- test_bencode.cpp
- test_bt_bitfield.cpp
- test_bt_byte_io.cpp
- test_bt_choker.cpp
- test_bt_disk_io.cpp
- test_bt_download.cpp
- test_bt_extensions.cpp
- test_bt_file_storage.cpp
- test_bt_magnet.cpp
- test_bt_magnet_fetch.cpp
- test_bt_pause_resume.cpp
- test_bt_peer_connection.cpp
- test_bt_peer_list.cpp
- test_bt_pex.cpp
- test_bt_piece_picker.cpp
- test_bt_reactor.cpp
- test_bt_resume_data.cpp
- test_bt_stall_metadata.cpp
- test_bt_store_buffer.cpp
- test_bt_subsystem.cpp
- test_bt_torrent_creator.cpp
- test_bt_torrent_info.cpp
- test_bt_tracker.cpp
- test_bt_types.cpp
- test_chained_send_buffer.cpp
- test_crc32.cpp
- test_crypto_blake2.cpp
- test_crypto_chacha_poly.cpp
- test_crypto_curve25519.cpp
- test_crypto_sha2.cpp
- test_dht.cpp
- test_dht_bep42.cpp
- test_dht_bootstrap.cpp
- test_dht_discovery.cpp
- test_dht_id.cpp
- test_dht_ip_diversity.cpp
- test_dht_node.cpp
- test_dht_node_entry.cpp
- test_dht_persistence_v2.cpp
- test_dht_routing_table.cpp
- test_dht_rpc_manager.cpp
- test_dht_shutdown.cpp
- test_dht_storage.cpp
- test_dht_traversal.cpp
- test_dht_udp.cpp
- test_dialer.cpp
- test_disk_io.cpp
- test_event_bus.cpp
- test_filexfer.cpp
- test_frame.cpp
- test_fs.cpp
- test_handshake.cpp
- test_hole_punch.cpp
- test_identify.cpp
- test_io_poller.cpp
- test_ip_address.cpp
- test_json.cpp
- test_logging.cpp
- test_main.cpp
- test_mdns.cpp
- test_mdns_discovery.cpp
- test_message_json.cpp
- test_nat_status.cpp
- test_network_monitor.cpp
- test_network_utils.cpp
- test_node.cpp
- test_node_bittorrent.cpp
- test_node_capi.cpp
- test_noise.cpp
- test_os.cpp
- test_paths.h
- test_peer_exchange.cpp
- test_peer_table.cpp
- test_persistence.cpp
- test_portmap.cpp
- test_pubsub.cpp
- test_reactor.cpp
- test_receive_buffer.cpp
- test_reconnection.cpp
- test_relay.cpp
- test_relay_link.cpp
- test_sha1.cpp
- test_socket.cpp
- test_storage.cpp
- test_stun.cpp
- test_subsystem.cpp
- test_tracker.cpp
- test_transport_udp.cpp
- badnet.sh
- .gitignore
- ARCHITECTURE.md
- CMakeLists.txt
- conanfile.py
- CONTRIBUTING.md
- Doxyfile
- LICENSE
- README.md
- THIRD_PARTY_NOTICES.md
- version.rc.in
# Installation Guide
git clone https://github.com/librats/librats
Downloads the entire project code from GitHub to your computer.
cd librats
Moves into the project folder you just downloaded.
2. CMake
Medium Recommendedcmake .. -DCMAKE_BUILD_TYPE=Release
Analyzes the source code and generates build configuration files (must be run inside the build folder).
cmake --build . --config Release
Type this command into your terminal and run it.
cmake .. -DRATS_BUILD_TESTS=OFF
Analyzes the source code and generates build configuration files (must be run inside the build folder).
cmake .. -DCMAKE_BUILD_TYPE=Debug
Analyzes the source code and generates build configuration files (must be run inside the build folder).
cmake .. -DRATS_SHARED_LIBRARY=ON -DRATS_STATIC_LIBRARY=OFF \
Analyzes the source code and generates build configuration files (must be run inside the build folder).
Pulled directly from this repo's README.
3. Gradle (Java/Kotlin)
Medium- Git Needed to download the project code from GitHub.
- JDK (Java) Required to build and run Java/Kotlin projects.
- Gradle If the repo includes gradlew (Gradle Wrapper), you don't need to install Gradle separately.
cd android
This project's files live in a subfolder, so move into it first.
./gradlew build
Builds the project using Gradle.
4. Node.js
Easycd nodejs
This project's files live in a subfolder, so move into it first.
npm install
Downloads and installs the libraries listed in package.json.
npm start
Starts the development/run server.
5. Python
Easypip install -r python/requirements.txt
Installs the Python libraries listed in requirements.txt (or similar).
python <μ€νν νμΌλͺ
>.py # READMEμμ μ νν μ€ν νμΌλͺ
μ νμΈνμΈμ
Runs the Python script (or module).
