redpowder 0.1.0

SDK / Devkit para Redstone OS
Documentation
  • Coverage
  • 38%
    38 out of 100 items documented2 out of 27 items with examples
  • Size
  • Source code size: 19.79 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 4.15 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 13s Average build duration of successful builds.
  • all releases: 17s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • Redstone-OS/redpowder
    0 0 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • MikeLanDSBR

🔥 Redpowder

SDK oficial para desenvolvimento no Redstone OS

Crates.io License: MIT

O que é?

Redpowder é o kit de desenvolvimento para criar aplicações que rodam no Redstone OS. Ele fornece:

  • 🔧 Syscalls - Wrappers seguros para chamadas ao kernel
  • 📝 IO - Macros print! e println! para console
  • 🧠 Memory - Alocação de memória virtual
  • 📨 IPC - Comunicação entre processos via portas
  • ⏱️ Time - Funções de tempo e sleep

Instalação

[dependencies]

redpowder = "0.1"

Uso Rápido

#![no_std]
#![no_main]

use redpowder::prelude::*;

#[no_mangle]
pub extern "C" fn _start() -> ! {
    println!("Hello from Redstone OS!");
    
    let pid = sys_getpid();
    println!("Meu PID: {}", pid);
    
    sleep(1000); // Dorme 1 segundo
    
    sys_exit(0);
}

Módulos

syscall - Chamadas de Sistema

use redpowder::syscall::*;

sys_exit(0);           // Encerra processo
sys_yield();           // Cede CPU
sys_getpid();          // Obtém PID
sys_write(0, b"Hi");   // Escreve no console

io - Input/Output

use redpowder::io::*;

print!("Sem quebra de linha");
println!("Com quebra de linha");
println!("Formatado: {}", 42);

memory - Memória

use redpowder::memory::*;

let ptr = alloc_rw(4096)?;  // Aloca 4KB
free(ptr, 4096)?;           // Libera

ipc - Comunicação

use redpowder::ipc::*;

let port = create_port(32)?;        // Cria porta
send(port, b"mensagem")?;           // Envia
let n = recv(port, &mut buf, 0)?;   // Recebe

time - Tempo

use redpowder::time::*;

sleep(1000);              // Dorme 1000ms
let ticks = monotonic();  // Ticks desde boot
let ms = uptime_ms();     // Uptime em ms

Prelude

Para importar tudo de uma vez:

use redpowder::prelude::*;

Inclui: sys_exit, sys_yield, sys_getpid, print, println, sleep, monotonic, SysError, SysResult

Requisitos

  • Rust nightly
  • Target: x86_64-redstone (ou x86_64-unknown-none)
  • #![no_std]

Licença

MIT - Veja LICENSE

Links