image Daemontatox/HydraCoder

HydraCoder is a state-of-the-art Rust-specialized coding model built on Qwen/Qwen3-Coder-30B-A3B-Instruct, designed for high-fidelity, idiomatic Rust code generation, completion, and repair.

This is the strongest pure Rust model to date, specifically fine-tuned on real-world projects, crates, compiler patterns, and Rust best practices.

๐Ÿฆ€ Key Features

Focused on Rust: Trained on diverse idiomatic Rust repositories, including tokio, serde, actix, clap, and async ecosystems.

Instruction-tuned: Accepts natural instructions like "write a TCP server" or "convert this struct to JSON".

Zero-shot Capable: Performs well without examples, and adapts to many Rust-specific patterns like lifetimes, Result<T, E>, traits, ownership, and borrow checking.


๐Ÿง  Intended Use

HydraCoder is ideal for:

Rust code generation from natural instructions

Auto-completion and snippet insertion in editors

Static analysis assistant tools

Compiler plugin or LSP augmentation

Refactoring or code review suggestions

Code repair or bugfix generation


๐Ÿ”ฌ Model Details

Property Value

Base Model Qwen/Qwen3-Coder-30B-A3B-Instruct Fine-tuned Model Daemontatox/HydraCoder Model Type Mixture-of-Experts (2/8 active experts) Parameters ~30B (with 2 active experts, ~7.5B per step) Domain Specialization Idiomatic Rust Code Training Tooling Unsloth + Hugging Face TRL License Apache 2.0


โœ๏ธ Example Prompt

Prompt:

Write a simple multithreaded web server in Rust that serves "Hello, world!" to any GET request.

HydraCoder Output:

use std::net::{TcpListener, TcpStream};
use std::io::{Read, Write};
use std::thread;

fn handle_client(mut stream: TcpStream) {
    let mut buffer = [0; 1024];
    if let Ok(_) = stream.read(&mut buffer) {
        let response = "HTTP/1.1 200 OK\r\nContent-Type: text/plain\r\n\r\nHello, world!";
        let _ = stream.write(response.as_bytes());
    }
}

fn main() -> std::io::Result<()> {
    let listener = TcpListener::bind("127.0.0.1:7878")?;
    println!("Server listening on port 7878...");

    for stream in listener.incoming() {
        match stream {
            Ok(stream) => {
                thread::spawn(|| {
                    handle_client(stream);
                });
            }
            Err(e) => eprintln!("Connection failed: {}", e),
        }
    }

    Ok(())
}

โšก Inference Code

You can run inference using transformers and text-generation pipeline:

from transformers import AutoTokenizer, AutoModelForCausalLM, pipeline

model_id = "Daemontatox/HydraCoder"

tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(model_id, device_map="auto", trust_remote_code=True)

pipe = pipeline("text-generation", model=model, tokenizer=tokenizer)

prompt = "Write a function in Rust that takes a list of integers and returns the sum of all even numbers."

output = pipe(prompt, max_new_tokens=200, do_sample=True, temperature=0.2)[0]["generated_text"]
print(output)

๐Ÿงช Benchmarks (Qualitative)

HydraCoder performs especially well on:

Code Rust (HumanEval / MBPP in Rust) โ€“ correctly compiling and idiomatic

Leetcode-style Rust tasks

Crate-specific patterns โ€“ understands macros, derive attributes, and lifetimes

Ownership-safe solutions


๐Ÿ” Limitations

Trained for Rust only โ€“ not suited for general-purpose multi-language tasks.

May hallucinate external crate names or imports if not in prompt.

Not guaranteed to pass Rust compiler unless prompt includes full context.


โœ… License

Released under the Apache 2.0 License. Free for research and commercial use with attribution.


๐Ÿ‘จโ€๐Ÿ’ป Author

Model Developer: Daemontatox

Base Model Author: Qwen Team

Fine-tuned with: Unsloth + TRL


Downloads last month
29
Safetensors
Model size
30.5B params
Tensor type
BF16
ยท
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for Daemontatox/HydraCoder

Finetuned
(10)
this model
Quantizations
2 models