RunicLab.Dbc 1.0.0-alpha

This is a prerelease version of RunicLab.Dbc.
dotnet add package RunicLab.Dbc --version 1.0.0-alpha
                    
NuGet\Install-Package RunicLab.Dbc -Version 1.0.0-alpha
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="RunicLab.Dbc" Version="1.0.0-alpha" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="RunicLab.Dbc" Version="1.0.0-alpha" />
                    
Directory.Packages.props
<PackageReference Include="RunicLab.Dbc" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add RunicLab.Dbc --version 1.0.0-alpha
                    
#r "nuget: RunicLab.Dbc, 1.0.0-alpha"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package RunicLab.Dbc@1.0.0-alpha
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=RunicLab.Dbc&version=1.0.0-alpha&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=RunicLab.Dbc&version=1.0.0-alpha&prerelease
                    
Install as a Cake Tool

๐Ÿ—„๏ธ DBC Library for World of Warcraft WOTLK 3.3.5a

<p align="center"> <img src="https://img.shields.io/badge/.NET-10.0-5C2D91?" alt=".NET"> <img src="https://img.shields.io/badge/C%23-14.0-239120?logo=c-sharp" alt="C#"> <img src="https://img.shields.io/badge/License-MIT-green.svg" alt="License"> </p>

A high-performance, modern .NET library for reading and writing World of Warcraft: Wrath of the Lich King (3.3.5a) DBC ( DataBase Client) files with exceptional speed and memory efficiency.

โœจ Features

  • ๐Ÿš€ Ultra-High Performance - Optimized for maximum throughput with minimal memory allocation
  • ๐Ÿ“– Read Support - Fast and efficient DBC file parsing with type-safe access
  • โœ๏ธ Write Support - Create and modify DBC files with integrity validation
  • ๐Ÿ”ง Type Safety - Strongly-typed API with compile-time validation
  • ๐Ÿ’พ Memory Efficient - Minimal memory footprint with smart caching strategies
  • ๐ŸŽฏ WOTLK 3.3.5a Focused - Specifically designed and tested for this version
  • ๐Ÿงต Thread Safe - Safe for concurrent operations across multiple threads

๐Ÿš€ Quick Start

Installation

dotnet add package Dbc

Basic Usage

using Dbc;

// Reading a DBC file
var achievementData = DbcFile.Load<AchievementDbc>(@"C:\My\Path\To\Achievement.dbc");

foreach (var achievement in achievementData.Records)
{
    Console.WriteLine($"Spell: {achievement.Name} (ID: {achievement.Id})");
}

// Writing a DBC file
var newAchievement = new List<AchivementDbc>();
// ... populate with data

DbcWriter.Save("NewAchievement.dbc", newAchievement);

๐Ÿ“‹ Supported DBC Files

The library supports all major DBC files from WOTLK 3.3.5a, including:

  • Spell.dbc - Spell definitions and properties
  • Item.dbc - Item database entries
  • Creature.dbc - NPC and creature data
  • Map.dbc - World map definitions
  • Achievement.dbc - Achievement system data
  • And many more...

๐Ÿ”ง Advanced Features

Custom Data Structures

[DbcStructure]
public class CustomEntry
{
    [DbcField(0)]
    public uint Id { get; set; }
    
    [DbcField(1)]
    public string Name { get; set; } = string.Empty;
    
    [DbcField(2)]
    public float Value { get; set; }
}

Performance Optimizations

// Enable memory pooling for large files
var options = new DbcReaderOptions
{
    UseMemoryPool = true,
    BufferSize = 8192
};

var data = DbcFile.Load<AchievementDbc>("Achievement.dbc", options);

Asynchronous Operations

// Async loading for better responsiveness
var spellData = await DbcFile.LoadAsync<AchievementDbc>("Achievement.dbc");

// Async writing
await DbcFile.SaveAsync("Output.dbc", records);

๐Ÿ› ๏ธ Requirements

  • .NET 10.0 or later
  • C# 14.0 language features
  • World of Warcraft WOTLK 3.3.5a client data

๐Ÿค Contributing

We welcome contributions! Please see our Contributing Guidelines for details.

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


<div align="center"> <sub>Built with โค๏ธ for the World of Warcraft community</sub> </div>

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net10.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0-alpha 379 11/20/2025

Initial release with read/write support for DBC files.