Sora.Media.Core 0.4.0

dotnet add package Sora.Media.Core --version 0.4.0
                    
NuGet\Install-Package Sora.Media.Core -Version 0.4.0
                    
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="Sora.Media.Core" Version="0.4.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Sora.Media.Core" Version="0.4.0" />
                    
Directory.Packages.props
<PackageReference Include="Sora.Media.Core" />
                    
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 Sora.Media.Core --version 0.4.0
                    
#r "nuget: Sora.Media.Core, 0.4.0"
                    
#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 Sora.Media.Core@0.4.0
                    
#: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=Sora.Media.Core&version=0.4.0
                    
Install as a Cake Addin
#tool nuget:?package=Sora.Media.Core&version=0.4.0
                    
Install as a Cake Tool

Sora Framework

Build services like you're talking to your code, not fighting it.

Sora is a backend framework for .NET developers who value clarity, comfort, and the ability to grow. Whether you're spinning up a quick prototype or scaling into enterprise-grade patterns, Sora keeps the path clear. Start with a three-file API. Add messaging, vector search, or AI when you're ready. Nothing more, nothing less.


🧱 From First Line to First Endpoint

Let’s start simple:

dotnet add package Sora.Core

dotnet add package Sora.Web

dotnet add package Sora.Data.Sqlite

Then:

public class Todo : Entity<Todo>
{
    public string Title { get; set; } = "";
    public bool IsDone { get; set; }
}

[Route("api/[controller]")]
public class TodosController : EntityController<Todo> { }

That’s a full REST API:

  • GET /api/todos
  • POST /api/todos
  • PUT /api/todos/{id}
  • Health checks at /health

It works. Right now. No ceremony.


🌱 A Framework That Grows With You

Sora isn’t trying to impress you with magic. It earns trust by staying out of your way—until you need more.

  • Add AI? One line.
  • Need vector search? Drop in a package.
  • Ready for messaging? Plug it in.
  • CQRS? Recipes exist.

You never pay for complexity you didn’t ask for.

dotnet add package Sora.Web.Swagger           # Interactive docs

dotnet add package Sora.AI                    # Local LLMs with Ollama

dotnet add package Sora.Data.Weaviate         # Semantic search

dotnet add package Sora.Messaging.RabbitMq    # Production messaging

dotnet add package Sora.Web.GraphQl           # REST + GraphQL side-by-side

Everything integrates naturally. No glue scripts. No boilerplate.


🧭 Philosophy: Start Simple, Grow Smart

Sora is designed by developers who’ve scaled codebases and lived to talk about it.

  • Minimal friction: Build a real service in a single file.
  • Clear structure: Follow .NET conventions, not opinions.
  • Honest complexity: Add what you need, skip what you don’t.
  • Escape hatches everywhere: Drop to raw SQL, write custom controllers, or override behavior freely.

🔧 The Pillars Behind the Curtain

Sora is modular by nature. Each of its components works independently—and shines together.

Pillar Purpose
Core Unified runtime, secure defaults, health checks, observability
Web REST and GraphQL from your models, Swagger UI, clean routing
Data Unified access to SQL, NoSQL, JSON, and vector DBs
Storage File/blob handling from local to cloud with profiles
Media First‑class uploads, bytes/HEAD endpoints (range/conditional), variants/derivatives, transforms
Messaging Reliable queues via RabbitMQ, Redis, or in-memory
AI Embeddings, vector search, chat, and RAG via local or remote models
Recipes Best-practice bundles for reliability, telemetry, and scale
Orchestration DevHost CLI to export/run local deps via Docker/Podman (Compose v2)
Orchestration DevHost CLI to export/run local deps via Docker/Podman (Compose v2)

🧪 Real Use, Not Just Hello World

Sora is already being used to build:

  • Microservices with event sourcing and inbox/outbox patterns
  • Developer tools with built-in AI assistance
  • Internal apps with rapid UI prototyping and Swagger docs

It’s ready for you too.

var todo = await new Todo { Title = "Learn Sora" }.Save();
var todos = await Todo.Where(t => !t.IsDone);

🛠 Getting Started

  1. Clone or create a new project with the Sora template
  2. Explore the samples/ directory
  3. Browse documentation under /docs/engineering
  4. Try something real—you’ll know in 10 minutes if it clicks

❤️ For developers who love clarity

Sora is open-source, MIT-licensed, and community-friendly. We welcome contributions, ideas, and questions. Built by folks who got tired of choosing between simplicity and power.

  • GitHub Issues for bugs/requests
  • GitHub Discussions for questions
  • See CONTRIBUTING.md to jump in

License: Apache 2.0 Requirements: .NET 9 SDK Current version: v0.2.18


🚀 Orchestration & CLI quickstart

Run local dependencies and export Compose via the Sora CLI (single-file binary published to dist/bin/Sora.exe). See docs/reference/sora-cli.md.

# Install/publish the CLI into dist/bin and add to PATH
./scripts/cli-all.ps1

# Validate engine and environment
Sora doctor --json

# Export a Compose v2 file (writes .sora/compose.yml)
Sora export compose --profile Local

# Bring services up and wait for readiness (health when defined)
Sora up --profile Local --timeout 300

# Inspect status and endpoints; view logs
Sora status
Sora logs

# Tear down and prune data
Sora down --prune-data

More: docs/reference/orchestration.md and docs/reference/sora-cli.md.

📦 Media at a glance

Add first-class media to your app with consistent semantics and HTTP endpoints.

  • Model-centric API: Upload, Get, Open, Url, Derivatives, RunTask/StreamTask
  • HTTP bytes/HEAD endpoints with range/conditional support and cache-control
  • Transform pipeline (resize/rotate/type-convert) with strictness and placement options
  • Storage integration for key safety, profiles (hot/cold), and presigned URLs when supported

See: docs/reference/media.md.

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

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
0.4.0 56 9/5/2025