fennecs 0.5.11-beta

This is a prerelease version of fennecs.
There is a newer prerelease version of this package available.
See the version list below for details.
dotnet add package fennecs --version 0.5.11-beta                
NuGet\Install-Package fennecs -Version 0.5.11-beta                
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="fennecs" Version="0.5.11-beta" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add fennecs --version 0.5.11-beta                
#r "nuget: fennecs, 0.5.11-beta"                
#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.
// Install fennecs as a Cake Addin
#addin nuget:?package=fennecs&version=0.5.11-beta&prerelease

// Install fennecs as a Cake Tool
#tool nuget:?package=fennecs&version=0.5.11-beta&prerelease                

fennecs logo

fennecs is a lightweight, performant, and expressive ECS library for game & simulations written in modern C#.

It's designed to be easy to use, with minimal boilerplate and no code generation or reflection required.

🚀 Quickstart

📦> dotnet add package fennecs

Here's a simple example to get you started:

// Declare a component record. (we can also use most existing value & reference types)
record struct Velocity(Vector3 Value);

// Create a world. (fyi, World implements IDisposable)
var world = new fennecs.World();

// Spawn an entity into the world with a choice of components. (or add/remove them later)
var entity = world.Spawn().Add<Velocity>();

// Queries are cached & we use ultra-lightweight Stream Views to feed data to our code!
var stream = world.Query<Velocity>().Stream();

// Run code on all entities in the query. (exchange 'For' with 'Job' for parallel processing)
stream.For(
    uniform: DeltaTime * 9.81f * Vector3.UnitZ,
    static (Vector3 uniform, ref Velocity velocity) =>
    {
        velocity.Value -= uniform;
    }
);

🌟 Key Features

  • Modern C# codebase targeting .NET 8
  • Archetype-based storage for cache-friendly iteration
  • Expressive, queryable relations between entities and components
  • Easy parallelization of workloads across and within archetypes
  • Zero codegen and minimal boilerplate

📚 Learn More

Check out the fennecs website for:

  • 📖 API documentation
  • 🍳 Cookbook with tasty recipes
  • 🎮 Demo projects to get inspired

Happy coding! 🦊❤️

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net8.0

    • No dependencies.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on fennecs:

Package Downloads
CopperDevs.Games.ECS

Simple layer above fennecs focused on games

GitHub repositories (2)

Showing the top 2 popular GitHub repositories that depend on fennecs:

Repository Stars
outfox/fennecs
... the tiny C# ECS that loves you back!
Doraku/Ecs.CSharp.Benchmark
Benchmarks of some C# ECS frameworks.
Version Downloads Last updated
0.5.14-beta 551 10/30/2024
0.5.13-beta 59 10/30/2024
0.5.12-beta 64 10/29/2024
0.5.11-beta 168 9/25/2024
0.5.10-beta 1,119 7/21/2024
0.5.9-beta 129 7/20/2024
0.5.8-beta 408 7/4/2024
0.5.7-beta 231 6/15/2024
0.5.6-beta 72 6/15/2024
0.5.5-beta 243 6/12/2024
0.5.4-beta 278 6/11/2024
0.5.3-beta 66 6/11/2024
0.5.2-beta 79 6/11/2024 0.5.2-beta is deprecated because it is no longer maintained.
0.5.1-beta 419 6/7/2024 0.5.1-beta is deprecated because it is no longer maintained.
0.5.0-beta 188 6/5/2024 0.5.0-beta is deprecated because it is no longer maintained.
0.4.6-beta 413 5/30/2024 0.4.6-beta is deprecated because it is no longer maintained.
0.4.5-beta 92 5/29/2024 0.4.5-beta is deprecated because it is no longer maintained.
0.4.2-beta 1,087 5/23/2024 0.4.2-beta is deprecated because it is no longer maintained.
0.4.1-beta 97 5/23/2024 0.4.1-beta is deprecated because it is no longer maintained.
0.4.0-beta 99 5/22/2024 0.4.0-beta is deprecated because it is no longer maintained.
0.3.5-beta 113 5/12/2024 0.3.5-beta is deprecated because it is no longer maintained.
0.3.0-beta 88 5/9/2024 0.3.0-beta is deprecated because it is no longer maintained.
0.2.0-beta 124 3/9/2024 0.2.0-beta is deprecated because it is no longer maintained.
0.1.1-beta 410 3/4/2024 0.1.1-beta is deprecated because it is no longer maintained.
0.1.0-beta 104 3/1/2024 0.1.0-beta is deprecated because it is no longer maintained.
0.0.7-pre 91 2/25/2024 0.0.7-pre is deprecated because it is no longer maintained.
0.0.6-pre 87 2/25/2024 0.0.6-pre is deprecated because it is no longer maintained.
0.0.5-pre 87 2/23/2024 0.0.5-pre is deprecated because it is no longer maintained.
0.0.4-pre 89 2/21/2024 0.0.4-pre is deprecated because it is no longer maintained.
0.0.3-pre 96 2/9/2024 0.0.3-pre is deprecated because it is no longer maintained.
0.0.2-pre 89 2/9/2024 0.0.2-pre is deprecated because it is no longer maintained.
0.0.1-pre 101 2/6/2024 0.0.1-pre is deprecated because it is no longer maintained.