MauryDev.KoGaMa.ModelAPI.KogamaStudio
1.0.0
dotnet add package MauryDev.KoGaMa.ModelAPI.KogamaStudio --version 1.0.0
NuGet\Install-Package MauryDev.KoGaMa.ModelAPI.KogamaStudio -Version 1.0.0
<PackageReference Include="MauryDev.KoGaMa.ModelAPI.KogamaStudio" Version="1.0.0" />
<PackageVersion Include="MauryDev.KoGaMa.ModelAPI.KogamaStudio" Version="1.0.0" />
<PackageReference Include="MauryDev.KoGaMa.ModelAPI.KogamaStudio" />
paket add MauryDev.KoGaMa.ModelAPI.KogamaStudio --version 1.0.0
#r "nuget: MauryDev.KoGaMa.ModelAPI.KogamaStudio, 1.0.0"
#:package MauryDev.KoGaMa.ModelAPI.KogamaStudio@1.0.0
#addin nuget:?package=MauryDev.KoGaMa.ModelAPI.KogamaStudio&version=1.0.0
#tool nuget:?package=MauryDev.KoGaMa.ModelAPI.KogamaStudio&version=1.0.0
KoGaMa ModelAPI Studio
KoGaMa ModelAPI Studio is a .NET Standard 2.0 library designed to handle the serialization and deserialization of model data used in KoGaMa Studio. It provides a unified interface to work with different model formats, primarily focusing on Binary and JSON representations of model cubes.
🚀 Features
- Automatic Format Detection: The library automatically detects whether a stream is in Binary or JSON format by analyzing the first byte.
- Binary Support: Full support for reading and writing the
KSCBbinary format. - JSON Support: Ability to deserialize model data from JSON files.
- Lightweight: Built on .NET Standard 2.0 for maximum compatibility across different .NET platforms.
📦 Installation
This library depends on MauryDev.KoGaMa.ModelAPI. Ensure you have that project referenced in your solution.
If you are adding it via project reference:
<ProjectReference Include="..\MauryDev.KoGaMa.ModelAPI.KogamaStudio\MauryDev.KoGaMa.ModelAPI.KogamaStudio.csproj" />
🛠 Usage
The primary entry point for the library is the KGMStudioSerializer class.
Deserializing a Model
The serializer will automatically determine if the file is a Binary (KSCB) or JSON file.
using MauryDev.KoGaMa.ModelAPI.KogamaStudio;
using MauryDev.KoGaMa.ModelAPI.Model;
using System.IO;
var serializer = new KGMStudioSerializer();
using (FileStream fs = File.OpenRead("myModel.kgm"))
{
ModelInfo model = serializer.Deserialize(fs);
Console.WriteLine($"Loaded model with {model.CubeCount} cubes.");
}
Serializing a Model
Currently, the library exports models using the Binary format.
using MauryDev.KoGaMa.ModelAPI.KogamaStudio;
using MauryDev.KoGaMa.ModelAPI.Model;
using System.IO;
var serializer = new KGMStudioSerializer();
ModelInfo myModel = new ModelInfo();
// ... add cubes to your model ...
using (FileStream fs = File.Create("exportedModel.kgm"))
{
serializer.Serialize(fs, myModel);
}
📋 Supported Formats
| Format | Detection Byte | Read | Write | Notes |
|---|---|---|---|---|
| Binary | K (KSCB) |
✅ | ✅ | Optimized for size and speed. |
| JSON | { |
✅ | ❌ | Useful for human-readable editing. |
🏗 Architecture
The library uses a provider-based pattern:
KGMStudioSerializer: The main coordinator.IModelFormatHandler: Interface defining how a specific format is handled.BinaryModelHandler: Logic for the binaryKSCBformat.JsonModelHandler: Logic for the JSON format.
📄 License
Refer to the LICENSE.md file for licensing details.
Author: MauryDev
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. 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. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- MauryDev.KoGaMa.ModelAPI (>= 1.0.4)
- System.Text.Json (>= 10.0.9)
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 | 111 | 6/23/2026 |