Posts for: #Blog

Create a REST API with Rust and Connect to Telegram Bot

To create a REST API with Rust that allows you to send photos and videos to a Telegram bot, we can use the Actix Web framework for the API and the Teloxide library for interacting with the Telegram bot.

Steps:

  1. Set up Actix Web to create the REST API.
  2. Use Teloxide to interact with the Telegram API for sending media.
  3. Use multipart form data to handle file uploads in the REST API.

Dependencies:

You will need the following dependencies in Cargo.toml:

Read more

Recommendation Structure Folder For Rust Apps

When organizing a Rust application, it’s important to follow a folder structure that is both maintainable and scalable. A well-organized folder structure makes it easier for developers to understand the code, contribute to the project, and scale the application as it grows. Below is a recommended structure for a typical Rust application, with explanations for each part.

my_rust_app/
├── Cargo.toml                # Project configuration (dependencies, metadata)
├── Cargo.lock                # Lock file (generated after running `cargo build`)
├── src/                      # Source files
│   ├── main.rs               # Main entry point (binary application)
│   ├── lib.rs                # Common library code (if applicable)
│   ├── bin/                  # Additional binaries (optional)
│   ├── models/               # Data models (e.g., structs, enums, etc.)
│   ├── services/             # Business logic / services
│   ├── handlers/             # Request handlers (e.g., for web servers)
│   ├── utils/                # Utility modules (e.g., helpers, utils)
│   ├── db/                   # Database-related code (e.g., migrations, queries)
│   ├── config/               # Configuration and environment setup
│   └── tests/                # Unit and integration tests
├── examples/                 # Example projects or usage demonstrations
├── target/                   # Build output directory (auto-generated by Cargo)
├── tests/                    # Integration tests (optional, alternative to `src/tests`)
├── scripts/                  # Utility scripts (e.g., setup, data generation)
└── README.md                 # Project documentation

Explanation of Folders and Files

1. Cargo.toml & Cargo.lock

  • Cargo.toml: This is the main configuration file for the Rust project. It contains metadata, dependencies, and build configuration for the project.
  • Cargo.lock: This file is automatically generated when you run cargo build or cargo install to lock the dependencies to specific versions. You should commit this file to ensure consistent builds.

2. src/

This folder contains the core source code of the project.

Read more

Setting Subdomain Cloudflare for hugo website in github page

If you’re using the Hugo framework to deploy your site on GitHub Pages and you’re experiencing issues with missing styles or incorrect layout after setting up a subdomain through Cloudflare, there are a few things to check and configure. Here’s a detailed guide to ensure that everything works smoothly.

1. Check the baseURL in Hugo’s Configuration

The baseURL setting in Hugo’s config.toml (or config.yaml or config.json, depending on your setup) is critical for making sure your site works correctly with a custom subdomain or domain.

Read more