Open Source
@ Innovian
Fostering a culture of collaboration and innovation within and beyond Innovian.

hero image

Our Philosophy

At Innovian, our commitment to open source projects reflects our dedication to enhancing the tools we use and supporting the wider community. By addressing bugs and developing new features, we not only improve software reliability, but also gain valuable insights into the technologies we depend on. This active participation ensures we deliver top-notch solutions to our clients while promoting a culture of shared growth and continuous improvement.

Our Projects

We are proud to present a collection of projects that we have independently authored and continue to maintain for the benefit of the broader open-source community. Each of these projects reflects our commitment to innovation, quality and collaboration.

These projects are not just contributions to the community; they are integral components of Innovian's own software solutions. By leveraging these tools, we ensure that our products are built on a foundation of robust, reliable and cutting-edge technology.

Innovian.Telnyx.Storage

Persistence

Telnyx

Telnyx provides an S3-compatible storage solution that integrates high-redundancy blob storage capabilities with cost-effective pricing via an API layer built atop a file-based blockchain.

We have leveraged their service for storage extensive long-term data archives and developed this library to streamline management and data transfer operations.

Innovian.Contrib.Dapr.StateQueryBuilder

Query

Dapr

The Dapr framework offers a state management API with limited query support for certain providers. It requires constructing complex JSON schemas to define operations such as contains, equals, paging, sorting, and handling AND/OR queries.

This project introduces a fluent API for JSON construction, minimizing the risk of human error or illegal operations, and significantly enhancing developer productivity.

Innovian.Aspects.Logging

Aspects

PostSharp

PostSharp’s Metalama product facilitates aspect-oriented development in C# by utilizing the Roslyn compiler for code generation and validation.

This project automates logging for non-static classes and methods in projects using Microsoft.Extensions.Logging. It wraps methods in a try/catch block to log arguments, return values, and execution time. An instance of ILogger is injected and available in classes marked with the ‘partial’ keyword, ensuring comprehensive logging and performance measurement.

Innovian.Aspects.Dapr.WorkflowRegistration

Aspects

PostSharp

PostSharp’s Metalama product facilitates aspect-oriented development in C# by leveraging the Roslyn compiler for code generation and validation.

This project is designed for microservices using Dapr’s Workflow capabilities. It ensures developers register all Workflow and WorkflowActivity implementations with the dependency injection system. At compile time, it identifies each implementing class and dynamically constructs a static method for standard Dapr Workflow registration.

If you are interested in support, would like to request a feature or want to customize any of these projects to better suit your own needs, we are here to help. Innovian offers commercial engagements to provide the expertise and assistance you request.

Our Contributions

We are excited to showcase the projects to which we have made significant contributions. Our deep familiarity with these initiatives underscores our expertise and commitment to advancing open-source technology. These contributions are integral to Innovian’s software solutions, reflecting our proficiency and dedication. By partnering with us, you gain access to subject-matter experts who are well-versed in these frameworks and tools, ensuring robust and innovative solutions for your needs.

Added support for EventHubBufferedProducerClient

Aspire .NET

August 16, 2024

Microsoft

Feature

Testing

Added support for the missing EventHubBufferedProducerClient in addition to the existing EventHubProducerClient and EventHubConsumerClient in Aspire's Event Hub implementation.

Added missing environment variables to reference docs

Dapr

August 14, 2024

Dapr

Documentation

Two environment variables I was recently working in another contribution were missing from the reference documentation, so this PR added them.

Add overload to supply query string on service invocation

Dapr

July 2, 2024

Dapr

Feature

Testing

Documentation

This PR adds an overload to the service invocation functionality in Dapr by explicitly allowing key/value pairs to be appended to the invocation URL

Added overload for DaprClient DI registration

Dapr

June 25, 2024

Dapr

Feature

Testing

This PR adds access to an instance of IServiceProvider in the registration method for the Dapr client enabling developers to access values from the configuration or other registered services during the Dapr client registration.

Add support for Azure Batch in Aspire alternative

Achieve.Aspire

May 13, 2024

rudiv

Feature

This PR adds support for Azure Batch as a deployment target for the project.

Added example demonstrating limits to workflow concurrency in fan in/out example

Dapr

May 7, 2024

Dapr

Documentation

The documentation described different workflow patterns, including a fan-out/fan-in pattern. But it ended with a note suggesting how to take the idea further, but without elaborating. This PR contributes a code sample providing precisely that elaboration.

Prioritized value of environment variable over configuration, if set

Dapr

April 19, 2024

Dapr

Feature

Documentation

Testing

When a certain well-known environment variable was being set with the expectation that it'd be used for tracing, the Dapr runtime wouldn't recognize it. In this PR, it not only recognizes, but prioritizes it over configured values when set.

Marked bulk state value property as nullable

Dapr

April 3, 2024

Dapr

Feature

An issue was raised indicating that a method was returning a null value despite not being marked with the appropriate annotations. This provides those annotations to this method.

Updated documentation to reflect best practices regarding endpoint registration

Dapr

April 3, 2024

Dapr

Documentation

With the release of .NET 8, the best practice guidance shifted from use of the app.UseEndpoints method and instead to registration directly on the app instance. This PR updated such guidance in the Dapr documentation.

Added persisted state management to support .NET 8 Blazor Web Apps

Fluxor

April 1, 2024

Fluxor

Feature

The introduction of the Auto rendermode in the .NET 8 version of Blazor broke any implementation of Fluxor that utilized it as the state would be lost during any transition from Server to WASM. This PR added a pluggable state persistence layer that restored project compatibility.

Fixed template not utilizing the named template

Aspire .NET

February 28, 2024

Microsoft

Bug Fix

When a resource was defined, it would produce an invalid value name for the template resource name argument. This PR corrected the issue here and across all dependencies of the value.

Implemented Cryptography support in Dapr .NET client

Dapr

February 14, 2024

Dapr

Documentation

Feature

Testing

This PR added support for high-performance and bidirectional streaming of data for encryption and decryption of strings or streams compatible with .NET 6 and newer.

Added Crypto API reference documentation

Dapr

January 22, 2024

Dapr

Documentation

Seeking to complement the Cryptography support provided for the .NET Dapr client in another PR, this PR updates the documentation with descriptions and reference information regarding the functionality.

Added cryptography examples to documentation

Dapr

January 22, 2024

Dapr

Documentation

This PR added explicit samples demonstrating encryption and decryption operations with the .NET Dapr client

Deep dive into DataContract-based serialization in Dapr Actors

Dapr

January 5, 2024

Dapr

Documentation

There have been many versions of C# released since the DataContract serialization library was originally introduced. As such, there's been some confusion around how serialization should behave using more modern C# functionality. This article performs a deep-dive analysis with examples into how newer C# capabilities can be readily used.

Added overload to deserialize GetBulkStateAsync item values

Dapr

October 23, 2023

Dapr

Feature

Documentation

Testing

Prior to this PR, data retrieved via a call to GetBulkStateAsync would simply returned as a string. This PR instead deserializes the data to the generic type specified using the serialization engine configured with the Dapr client.

Added unit test to invalidate bug report

Dapr

October 23, 2023

Dapr

Feature

A bug report was filed indicated something wasn't working as intended. I created a unit test to prove that the client was handling the operation as expected

Link correction

Dapr

September 26, 2023

Dapr

Documentation

The Dapr documentation cited a bad link in the Azure App Configuration documentation describing authentication with Azure. This PR corrected this link with an appropriate URL.

Updated remoting listener extension to support exception serialization

Azure Service Fabric

September 9, 2023

Microsoft

Feature

Newer versions of Azure Service Fabric use new serialization settings. This PR adds overloads to a set of extensions that ship with the Service Fabric .NET SDK to support exception serialization using a custom IExceptionConverter for V2 remoting purposes.

Provided fabric-based example spanning multiple projects

Metalama

May 2, 2023

PostSharp

Documentation

This PR comprised an example project demonstrating how to add aspects to multiple projects using Metalama Fabrics.

Fix for scaling validation issue

Azure Service Fabric

October 27, 2022

Microsoft

Bug Fix

Fixed an issue that prevented scaling in the web explorer interface due to a badly formed regular expression.

Fix for timestamp sorting issue

Azure Service Fabric

October 27, 2022

Microsoft

Bug Fix

In the web explorer interface, clicking the timestamp header to change the sort order didn't do anything, and this fixed PR this experience.

Fixed missing colors in legend

Charts.css

May 21, 2022

ChartsCSS

Bug Fix

If more than ten colors were placed in the legend, the remaining elements wouldn't have a fill color. This fix changed this behavior so the colors would just repeat.

If you are interested in support, would like to request a feature or want to customize any of these projects to better suit your own needs, we are here to help. Innovian offers commercial engagements to provide the expertise and assistance you request.