{"id":23693243,"url":"https://github.com/stillpoint-software/hyperbee.pipeline","last_synced_at":"2026-02-27T23:55:12.001Z","repository":{"id":232594859,"uuid":"783820204","full_name":"Stillpoint-Software/hyperbee.pipeline","owner":"Stillpoint-Software","description":"A pipeline library for constructing asynchronous fluent pipelines in .NET","archived":false,"fork":false,"pushed_at":"2026-02-18T22:13:19.000Z","size":907,"stargazers_count":5,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-02-19T04:41:02.911Z","etag":null,"topics":["csharp","dependency-injection","dotnet","fluent-pipelines","hooks","middleware","pipelines"],"latest_commit_sha":null,"homepage":"https://stillpoint-software.github.io/hyperbee.pipeline/","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Stillpoint-Software.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-04-08T16:27:48.000Z","updated_at":"2026-02-18T22:13:24.000Z","dependencies_parsed_at":null,"dependency_job_id":"2a87f321-32b6-4bbf-92ad-55c810b20252","html_url":"https://github.com/Stillpoint-Software/hyperbee.pipeline","commit_stats":null,"previous_names":["stillpoint-software/hyperbee.pipeline"],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/Stillpoint-Software/hyperbee.pipeline","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Stillpoint-Software%2Fhyperbee.pipeline","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Stillpoint-Software%2Fhyperbee.pipeline/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Stillpoint-Software%2Fhyperbee.pipeline/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Stillpoint-Software%2Fhyperbee.pipeline/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Stillpoint-Software","download_url":"https://codeload.github.com/Stillpoint-Software/hyperbee.pipeline/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Stillpoint-Software%2Fhyperbee.pipeline/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29917212,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-27T19:37:42.220Z","status":"ssl_error","status_checked_at":"2026-02-27T19:37:41.463Z","response_time":57,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["csharp","dependency-injection","dotnet","fluent-pipelines","hooks","middleware","pipelines"],"created_at":"2024-12-30T03:50:43.220Z","updated_at":"2026-02-27T23:55:11.972Z","avatar_url":"https://github.com/Stillpoint-Software.png","language":"C#","readme":"﻿# Hyperbee Pipeline\n\n`Hyperbee.Pipeline` allows you to construct asynchronous fluent pipelines in .NET. A pipeline, in this context, refers to a \nsequence of data processing elements arranged in series, where the output of one element serves as the input for the subsequent \nelement.\n\nHyperbee pipelines are composable, reusable, and easy to test. They are designed to be used in a variety of scenarios, such \nas data processing, message handling, and workflow automation.\n\nSome key features are:\n\n* Middleware\n* Hooks\n* Wraps\n* Conditional flows\n* Loops\n* Parallel processing\n* Dependency injection\n* Early returns and cancellation\n* Child pipelines\n\n## Why Use Pipelines\n\nPipelines provide a structured approach to managing complex processes, promoting [SOLID](https://en.wikipedia.org/wiki/SOLID)\nprinciples, including Inversion of Control (IoC) and Separation of Concerns (SoC). They enable composability, making it easier\nto build, test, and maintain your code. By extending the benefits of middleware and request-response pipelines throughout your \napplication, you achieve greater modularity, scalability, and flexibility. This is particularly important in domains that demand\ncompliance, auditing, strong identity and role management, or high-security standards—where clear boundaries and responsibilities\nare essential. Hyperbee.Pipeline ensures that the advantages of pipelines and middleware are not abandoned at the controller\nimplementation, addressing a common gap in many frameworks. By using a functional approach, Hyperbee.Pipeline ensures that your\npipelines are not only robust and maintainable but also highly adaptable to changing requirements.\n\n\n## Getting Started\n\nTo get started with Hyperbee.Json, refer to the [documentation](https://stillpoint-software.github.io/hyperbee.pipeline) for \ndetailed instructions and examples. \n\nInstall via NuGet:\n\n```bash\ndotnet add package Hyperbee.Pipeline\n```\n\n## Building and Executing Pipelines\n\nPipelines are built using `PipelineFactory`. Once built, a pipeline is just an async function that takes a `PipelineContext` and \nan optional input value as parameters, and returns a result. \n\n```csharp\n    var command = PipelineFactory\n        .Start\u003cstring\u003e()\n        .Pipe( ( ctx, arg ) =\u003e $\"hello {arg}\" )\n        .Build();\n\n    var result = await command( new PipelineContext(), \"pipeline\" );\n\n    Assert.AreEqual( \"hello pipeline\", result );\n```\n\n## Dependency Injection\n\nSometimes Pipelines and Pipeline middleware need access to specific container services. This can be\naccomplished by registering services with the `PipelineContextFactory`. This can be done through\nDI configuration, or manually through the `PipelineContextFactoryProvider` if you are not using DI.\n\nPipelines manage dependencies with a specialized container. This allows the implementor to control\nthe services that are exposed through the pipeline. If you want to expose all application\nservices then you can call `AddPipeline` and pass `includeAllServices: true`. \n\nRegister pipelines with DI and provide Pipeline dependencies using the application container.\n\n```csharp\nservices.AddPipeline( includeAllServices: true );\n```\n\nRegister Pipelines with DI and provide Pipeline dependencies using a specialized container.\n\n```csharp\nservices.AddPipeline( (factoryServices, rootProvider) =\u003e\n{\n    factoryServices.AddTransient\u003cIThing\u003e()\n    factoryServices.ProxyService\u003cIPrincipalProvider\u003e( rootProvider ); // pull from root container\n} );\n```\n\n## Pipeline of Pipelines\n\nThe `PipelineFactory` library allows you to use pipelines together. Since pipelines are just functions, they can be used \nas input to other pipelines. This allows you to create complex data processing flows by reusing and chaining together\nmultiple pipelines.\n\nHere's an example of how to use pipelines together:\n\n```csharp\nvar pipeline2 = PipelineFactory\n    .Start\u003cstring\u003e()\n    .Pipe( ( ctx, arg ) =\u003e $\"{arg} again!\" )\n    .Build();\n\nvar pipeline1 = PipelineFactory\n    .Start\u003cstring\u003e()\n    .Pipe( ( ctx, arg ) =\u003e $\"hello {arg}\" )\n    .PipeAsync( pipeline2 )\n    .Build();\n\nvar result = await pipeline1( new PipelineContext(), \"you\" );\n\nAssert.AreEqual( \"hello you again!\", result );\n```\n\n## Conditional Flow and Advanced Features\n\nThe `PipelineFactory` library provides a variety of builders that allow you to customize the behavior of your pipelines. \nThese methods provide powerful functionality for manipulating data as it passes through the pipeline.\n\n- Functions\n- Procedures\n- Conditional Flow\n- Iterators\n- Reduce\n- Parallel execution\n\n## Credits\n\nHyperbee.Pipeline is built upon the great work of several open-source projects. Special thanks to:\n\n- [Just The Docs](https://github.com/just-the-docs/just-the-docs) for the documentation theme.\n\n## Contributing\n\nWe welcome contributions! Please see our [Contributing Guide](https://github.com/Stillpoint-Software/.github/blob/main/.github/CONTRIBUTING.md) \nfor more details.\n\n\n# Status\n\n| Branch     | Action                                                                                                                                                                                                                      |\n|------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `develop`  | [![Build status](https://github.com/Stillpoint-Software/Hyperbee.Pipeline/actions/workflows/pack_publish.yml/badge.svg?branch=develop)](https://github.com/Stillpoint-Software/Hyperbee.Pipeline/actions/workflows/pack_publish.yml)  |\n| `main`     | [![Build status](https://github.com/Stillpoint-Software/Hyperbee.Pipeline/actions/workflows/pack_publish.yml/badge.svg)](https://github.com/Stillpoint-Software/Hyperbee.Pipeline/actions/workflows/pack_publish.yml)                 |\n\n# Help\n See [Todo](https://github.com/Stillpoint-Software/Hyperbee.Pipeline/blob/main/docs/todo.md)\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstillpoint-software%2Fhyperbee.pipeline","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstillpoint-software%2Fhyperbee.pipeline","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstillpoint-software%2Fhyperbee.pipeline/lists"}