Telespace is a robust solution developed initially as a university project that has evolved to leverage Telegram as a platform for unlimited data storage. This tool allows users to store an extensive amount of data seamlessly by utilizing Telegram as the backend storage service.
- Introduction
- Features
- Installation
- Usage
- Project Structure
- Dependencies
- Configuration
- Contributing
- To-Do List
- License
- Unlimited File Storage: Utilize the power of Telegram to store as much data as you need.
- Custom Bot Setup: Set up your own Telegram bot and specify the chat ID to start storing data.
- Automated Scheduling: Schedule uploads and downloads to manage data transfers effortlessly.
- Ensure you have Rust installed on your machine. Visit Rust's installation page for guidance.
To run the project in debug mode, simply execute:
cargo run
To compile the project for production, use the following commands:
cargo build --release
Then, move the binary from the target
directory to the root directory of the project and run it.
To start using Telespace, configure your Telegram bot and specify the chat ID in the configuration file. Use the commands listed under Running the Project and Compiling to operate the system.
main.rs
: Main entry point of the application.
- Contains Rust models and entities for users, files, tasks, and data chunks. Managed via SeaOrm for database interactions.
- Houses the API logic including JWT authentication, database connection pooling, and request handlers for tasks, files, and directories.
task_queue.rs
: Manages task queuing and processing.worker.rs
: Handles background worker tasks.
Configure the system by modifying the config.toml
file located in the root directory. This file should include parameters such as your Telegram bot token and chat ID.
Contributions are welcome! For major changes, please open an issue first to discuss what you would like to change. Ensure to update tests as appropriate.
- Optimize data handling and storage processes.
- Encryption/Decryption of everything that goes/comes to/from Telegram, preferably using Asymmetrical Encryption Methods.
- Resume uncomplete/failed task on start-up
- Multi Worker execution. (fairly tricky, given the raw dependencies we have)
- Unit Tests for every method
- General refactoring
This project is licensed under the MIT License - see the LICENSE file for details.