IWF.TeleFlow.Storage.Memory
0.1.0-alpha.1
See the version list below for details.
dotnet add package IWF.TeleFlow.Storage.Memory --version 0.1.0-alpha.1
NuGet\Install-Package IWF.TeleFlow.Storage.Memory -Version 0.1.0-alpha.1
<PackageReference Include="IWF.TeleFlow.Storage.Memory" Version="0.1.0-alpha.1" />
<PackageVersion Include="IWF.TeleFlow.Storage.Memory" Version="0.1.0-alpha.1" />
<PackageReference Include="IWF.TeleFlow.Storage.Memory" />
paket add IWF.TeleFlow.Storage.Memory --version 0.1.0-alpha.1
#r "nuget: IWF.TeleFlow.Storage.Memory, 0.1.0-alpha.1"
#:package IWF.TeleFlow.Storage.Memory@0.1.0-alpha.1
#addin nuget:?package=IWF.TeleFlow.Storage.Memory&version=0.1.0-alpha.1&prerelease
#tool nuget:?package=IWF.TeleFlow.Storage.Memory&version=0.1.0-alpha.1&prerelease
TeleFlow
TeleFlow is an explicit Telegram bot framework for .NET.
It is built for the normal lifecycle of a Telegram bot: a first command, then callbacks, state, role checks, background services, retries, storage, diagnostics, deployment, and a codebase that still needs to be readable after it grows.
Starts like a script. Grows like a system.
Documentation
The repository documentation is split like a small product site and is ready to be moved to GitHub Pages later.
- Documentation home
- English documentation
- Russian documentation
- Quickstart
- Configuration and secrets
- Recommended paths
- Package guide
- Support desk tutorial
- Enterprise guide
- Feature reference
- Roadmap
What TeleFlow Gives You
- Handler routing with attributes such as
[Command],[Text],[Callback],[State],[SceneStep], and media filters. - Build-time generated handler metadata through the
IWF.TeleFlow.Generatorspackage. - A deliberate failure when generated metadata is missing. No silent reflection fallback on the recommended path.
- Direct Telegram Bot API access through
ITelegramClientand generatedctx.Bot.*Asyncextension methods. - Message and callback helpers for common flows: answers, replies, edits, deletion, media, keyboards, and chat actions.
- Typed callback payloads with compact callback data serialization.
- State, state data, wizard navigation, and replaceable storage contracts.
- Long polling and ASP.NET Core webhook framework adapters.
- Raw long polling and raw webhook packages for applications that do not want the handler framework.
- Normal .NET dependency injection for handlers, services, repositories, filters, storage, and infrastructure.
Install
For a handler-based long polling bot:
dotnet add package IWF.TeleFlow.Telegram.Framework.LongPolling
dotnet add package IWF.TeleFlow.Generators
dotnet add package IWF.TeleFlow.Storage.Memory
Keep the generator as a private build-time dependency:
<PackageReference Include="IWF.TeleFlow.Generators" Version="..." PrivateAssets="all" />
For direct Bot API access without the framework:
dotnet add package IWF.TeleFlow.Telegram
First Bot
using TeleFlow.Annotations;
using TeleFlow.Core.Application;
using TeleFlow.Storage.Memory;
using TeleFlow.Telegram;
var token = Environment.GetEnvironmentVariable("TELEFLOW_BOT_TOKEN")
?? throw new InvalidOperationException("TELEFLOW_BOT_TOKEN is not set.");
var builder = TeleFlowApplication.CreateBuilder(args);
builder.Services.AddTelegramBot(options => options.Token = token);
builder.Services.AddMemoryStateStorage();
builder.Services.AddTelegramHandlersFromAssembly(typeof(Program).Assembly);
builder.Services.AddLongPolling();
await using var app = builder.Build();
await app.RunAsync();
public sealed class StartHandler
{
[Command("start")]
public Task Handle(MessageContext ctx, CancellationToken ct)
{
return ctx.Message.AnswerAsync("Hello from TeleFlow.", ct);
}
}
This example uses generated assembly registration. If the IWF.TeleFlow.Generators package is not referenced by the application project, AddTelegramHandlersFromAssembly(...) fails during startup with a clear configuration error.
Recommended Reading Order
If you are new to bot frameworks, read:
- Quickstart
- Configuration and secrets
- Recommended paths
- Handlers and routing
- Callbacks and keyboards
- State and wizard
If you already build production .NET services, read:
- Packages
- Configuration and secrets
- Application model
- Project structure
- Dependency injection
- Transports
- Deployment
- Performance and scaling
- Versioning and releases
- Enterprise guide
Project Status
TeleFlow is in active development. The documentation describes APIs that exist in the current repository. Planned features belong in roadmap documents, not in user-facing API documentation.
Planned framework work is tracked in the roadmap.
Runtime packages currently target net10.0. The IWF.TeleFlow.Generators package targets netstandard2.0 because analyzers and source generators run inside the compiler.
License
TeleFlow is released under the MIT License.
| Product | Versions 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. |
-
net10.0
- IWF.TeleFlow.Core (>= 0.1.0-alpha.1)
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.14 | 19 | 8/5/2026 |
| 1.0.0-alpha.13 | 48 | 7/31/2026 |
| 1.0.0-alpha.12 | 71 | 7/21/2026 |
| 1.0.0-alpha.11 | 57 | 7/21/2026 |
| 1.0.0-alpha.10 | 53 | 7/21/2026 |
| 1.0.0-alpha.9 | 108 | 7/2/2026 |
| 1.0.0-alpha.8 | 68 | 7/1/2026 |
| 1.0.0-alpha.7 | 64 | 7/1/2026 |
| 1.0.0-alpha.6 | 70 | 7/1/2026 |
| 1.0.0-alpha.5 | 64 | 6/30/2026 |
| 1.0.0-alpha.4 | 58 | 6/29/2026 |
| 1.0.0-alpha.3 | 61 | 6/27/2026 |
| 1.0.0-alpha.2 | 64 | 6/26/2026 |
| 0.1.0-alpha.1 | 64 | 6/25/2026 |