vibecode 0.1.0

Compile-time vibe coding.
Documentation

vibecode

Tired of fast, reproducible and secure builds? Introducing compile-time vibe coding!

use vibecode::vibecode;

#[vibecode]
fn sum(xs: Vec<i32>) -> i32 {}

let result = sum(vec![27, 14, 42, -4, 32]);

assert_eq!(result, 111); // That's numberwang!

Tell me more!

You can also give more context via an explicit prompt, and the complexity you configure determines the model used to generate the code:

use vibecode::vibecode;

#[vibecode(prompt = "Return sorted in descending order", complexity = "medium")]
fn prime_numbers_below_limit(limit: u64) -> Vec<u64> {}

let result = prime_numbers_below_limit(20);

assert_eq!(result, vec![19, 17, 13, 11, 7, 5, 3, 2]);

You can also generate and evaluate code inline with viberun!:

use vibecode::viberun;

let my_number = 5;

let result = viberun!("Calculate the factorial of a number", my_number);

assert_eq!(result, 120);

TODOs

  • Support attribute macro for function signatures
  • Take user prompt as input to attribute macro
  • Add function macro that takes user prompt as input
  • Support configurable complexity in attribute macro
  • Support configurable complexity in function macro
  • Support injection of OpenAI-compatible API client