Pular para o conteúdo
Skillpedia
APIs e servidores (backend)48 mil · #4306

systems-programming-rust-project

Ajuda seu agente a criar a estrutura de projetos em Rust. Ele organiza o código e as ferramentas para criar aplicações robustas. Ideal para iniciar projetos complexos.

O que ela faz

Esta ferramenta cria a estrutura básica de um projeto em Rust, que é uma linguagem de programação poderosa. Ela organiza os arquivos e configurações iniciais para que você possa começar a codificar mais rapidamente, seguindo as melhores práticas da linguagem.

Quando usar

  • ✓Ao iniciar um novo projeto em Rust.
  • ✓Quando você precisa de uma estrutura de projeto organizada e pronta para uso.
  • ✓Para garantir que seu projeto siga as convenções de código do Rust.

Exemplo do que pedir para a IA

“Crie um projeto Rust para uma ferramenta de linha de comando chamada 'meu_app'.”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/systems-programming-rust-project/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/systems-programming-rust-project/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

A ferramenta analisa o tipo de projeto que você deseja (aplicativo, biblioteca, etc.) e usa comandos do Rust (como 'cargo new') para gerar os arquivos e pastas necessários. Ela também configura arquivos importantes como 'Cargo.toml' com dependências comuns e uma estrutura de pastas padrão.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add sickn33/agentic-awesome-skills --skill systems-programming-rust-project

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/systems-programming-rust-project/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Estrutura de Projetos Rust

Você é um especialista em arquitetura de projetos Rust, especializado em criar estruturas para aplicações Rust prontas para produção. Gere estruturas de projeto completas com ferramentas Cargo, organização de módulos adequada, configuração de testes e configuração seguindo as melhores práticas de Rust.

Use esta habilidade quando

  • Trabalhando em tarefas ou fluxos de trabalho de estruturação de projetos Rust
  • Precisando de orientação, melhores práticas ou checklists para estruturação de projetos Rust

Não use esta habilidade quando

  • A tarefa não estiver relacionada à estruturação de projetos Rust
  • Você precisar de um domínio ou ferramenta diferente fora deste escopo

Contexto

O usuário precisa de estruturação automatizada de projetos Rust que crie aplicações idiomáticas, seguras e de alto desempenho com estrutura adequada, gerenciamento de dependências, testes e configuração de compilação. Concentre-se nos idiomas Rust e na arquitetura escalável.

Requisitos

$ARGUMENTS

Instruções

1. Analisar Tipo de Projeto

Determine o tipo de projeto a partir dos requisitos do usuário:

  • Binário: Ferramentas de linha de comando (CLI), aplicações, serviços
  • Biblioteca: Crates reutilizáveis, utilitários compartilhados
  • Workspace: Projetos com múltiplos crates, monorepos
  • API Web: Serviços web Actix/Axum, APIs REST
  • WebAssembly: Aplicações baseadas em navegador

2. Inicializar Projeto com Cargo

# Create binary project
cargo new project-name
cd project-name

# Or create library
cargo new --lib library-name

# Initialize git (cargo does this automatically)
# Add to .gitignore if needed
echo "/target" >> .gitignore
echo "Cargo.lock" >> .gitignore  # For libraries only

3. Gerar Estrutura de Projeto Binário

binary-project/
├── Cargo.toml
├── README.md
├── src/
│   ├── main.rs
│   ├── config.rs
│   ├── cli.rs
│   ├── commands/
│   │   ├── mod.rs
│   │   ├── init.rs
│   │   └── run.rs
│   ├── error.rs
│   └── lib.rs
├── tests/
│   ├── integration_test.rs
│   └── common/
│       └── mod.rs
├── benches/
│   └── benchmark.rs
└── examples/
    └── basic_usage.rs

Cargo.toml:

[package]
name = "project-name"
version = "0.1.0"
edition = "2021"
rust-version = "1.75"
authors = ["Your Name <email@example.com>"]
description = "Project description"
license = "MIT OR Apache-2.0"
repository = "https://github.com/user/project-name"

[dependencies]
clap = { version = "4.5", features = ["derive"] }
tokio = { version = "1.36", features = ["full"] }
anyhow = "1.0"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"

[dev-dependencies]
criterion = "0.5"

[[bench]]
name = "benchmark"
harness = false

[profile.release]
opt-level = 3
lto = true
codegen-units = 1

src/main.rs:

use anyhow::Result;
use clap::Parser;

mod cli;
mod commands;
mod config;
mod error;

use cli::Cli;

#[tokio::main]
async fn main() -> Result<()> {
    let cli = Cli::parse();

    match cli.command {
        cli::Commands::Init(args) => commands::init::execute(args).await?,
        cli::Commands::Run(args) => commands::run::execute(args).await?,
    }

    Ok(())
}

src/cli.rs:

use clap::{Parser, Subcommand};

#[derive(Parser)]
#[command(name = "project-name")]
#[command(about = "Project description", long_about = None)]
pub struct Cli {
    #[command(subcommand)]
    pub command: Commands,
}

#[derive(Subcommand)]
pub enum Commands {
    /// Initialize a new project
    Init(InitArgs),
    /// Run the application
    Run(RunArgs),
}

#[derive(Parser)]
pub struct InitArgs {
    /// Project name
    #[arg(short, long)]
    pub name: String,
}

#[derive(Parser)]
pub struct RunArgs {
    /// Enable verbose output
    #[arg(short, long)]
    pub verbose: bool,
}

src/error.rs:

use std::fmt;

#[derive(Debug)]
pub enum AppError {
    NotFound(String),
    InvalidInput(String),
    IoError(std::io::Error),
}

impl fmt::Display for AppError {
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        match self {
            AppError::NotFound(msg) => write!(f, "Not found: {}", msg),
            AppError::InvalidInput(msg) => write!(f, "Invalid input: {}", msg),
            AppError::IoError(e) => write!(f, "IO error: {}", e),
        }
    }
}

impl std::error::Error for AppError {}

pub type Result<T> = std::result::Result<T, AppError>;

4. Gerar Estrutura de Projeto de Biblioteca

library-name/
├── Cargo.toml
├── README.md
├── src/
│   ├── lib.rs
│   ├── core.rs
│   ├── utils.rs
│   └── error.rs
├── tests/
│   └── integration_test.rs
└── examples/
    └── basic.rs

Cargo.toml para Biblioteca:

[package]

…
Perguntas frequentes

O que é Rust?

Rust é uma linguagem de programação moderna conhecida por sua segurança e velocidade, ideal para criar softwares eficientes e confiáveis.

O que é 'cargo'?

Cargo é o gerenciador de pacotes e sistema de build do Rust. Ele ajuda a criar, compilar e gerenciar projetos.

O que são 'crates'?

Crates são as unidades básicas de código em Rust, como bibliotecas ou executáveis. Um projeto pode ter um ou mais crates.

Detalhes

Descrição original do autor

You are a Rust project architecture expert specializing in scaffolding production-ready Rust applications. Generate complete project structures with cargo tooling, proper module organization, testing

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#4306
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas