Convert Figma logo to code with AI

Denvi logoCandle

GRBL controller application with G-Code visualizer written in Qt.

1,452
567
1,452
394

Quick Overview

Candle is a lightweight and efficient web framework for building modern web applications in Rust. It provides a simple and intuitive API for handling HTTP requests, routing, middleware, and more, making it a great choice for developers looking to build fast and scalable web applications.

Pros

  • Lightweight and Efficient: Candle is built on top of the Hyper HTTP library, which is known for its high performance and low overhead.
  • Intuitive API: The framework's API is designed to be easy to use and understand, with a focus on simplicity and developer productivity.
  • Flexible and Extensible: Candle is highly modular and can be easily extended with custom middleware and plugins.
  • Robust Routing: The framework's routing system is powerful and flexible, supporting dynamic routes, path parameters, and more.

Cons

  • Limited Documentation: While the core functionality of Candle is well-documented, some of the more advanced features and use cases may not be as well-covered.
  • Smaller Community: Compared to some of the more established Rust web frameworks, Candle has a smaller community of users and contributors, which may limit the availability of third-party libraries and resources.
  • Relatively New: Candle is a relatively new framework, and as such, it may not have the same level of maturity and stability as some of the more established options.
  • Limited Ecosystem: The Candle ecosystem is still relatively small, with fewer third-party libraries and tools available compared to some other Rust web frameworks.

Code Examples

Here are a few examples of how to use Candle to build a web application:

use candle::prelude::*;

#[derive(Debug, Deserialize)]
struct User {
    name: String,
    email: String,
}

#[get("/users/{id}")]
async fn get_user(id: u32) -> Result<Json<User>> {
    // Fetch user data from a database or other data source
    let user = User {
        name: "John Doe".to_string(),
        email: "john.doe@example.com".to_string(),
    };
    Ok(Json(user))
}

#[post("/users")]
async fn create_user(user: Json<User>) -> Result<Json<User>> {
    // Save the user data to a database or other data source
    Ok(user)
}

#[main]
async fn main() -> Result<()> {
    let app = App::new()
        .route(get_user)
        .route(create_user)
        .run("127.0.0.1:3000")
        .await?;
    Ok(())
}

This example demonstrates how to define HTTP routes and handlers using Candle's declarative routing system. The get_user and create_user functions are annotated with the #[get] and #[post] macros, respectively, which automatically generate the necessary routing and request handling code.

Getting Started

To get started with Candle, you'll need to have Rust installed on your system. You can then create a new Candle project using Cargo:

cargo new my-candle-app
cd my-candle-app

Next, add the Candle dependency to your Cargo.toml file:

[dependencies]
candle = "0.1.0"

You can then write your application code in the src/main.rs file, using the examples above as a starting point. To run your application, use the following command:

cargo run

This will start the Candle server and make your application available at http://127.0.0.1:3000.

For more detailed information on using Candle, be sure to check out the project's documentation.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Candle

GRBL controller application with G-Code visualizer written in Qt.

Supported functions:

  • Controlling GRBL-based cnc-machine via console commands, buttons on form, numpad.
  • Monitoring cnc-machine state.
  • Loading, editing, saving and sending of G-code files to cnc-machine.
  • Visualizing G-code files.

System requirements for running "Candle":

  • Windows/Linux x86
  • CPU with SSE2 instruction set support
  • Graphics card with OpenGL 2.0 support
  • 120 MB free storage space

Build requirements:

Qt 5.4.2 with MinGW/GCC compiler

Downloads:

Experimental versions:

For GRBL v1.1 firmware

(for GRBL v0.9 and below use Candle 1.0)

Before creating new issue:

Candle works with CNC controlled by GRBL firmware, many problems can be solved by using proper version of GRBL, using proper configuration.

Please read GRBL wiki:

"Candle" main window: screenshot

NPM DownloadsLast 30 Days