Git Product home page Git Product logo

tesseract's Introduction

TESSERACT

TesseractLogo

A library of NetCore tools to help rapidly develop well performant micro/macroservices.

Prototypes you could send to production!

Why Make A Tesseract Powered Dataflow

Dataflows have concurrency, serialization, monitoring, compression, and encryption all as first class citizens. This paradigm allows developers to just focus on the important stuff - getting work done. Dataflows pay attention to the extra dimensions so you don't have to!

Here are some features ready with RabbitMQ today, tomorrow - the world!

Queueing

  • Async Processing
  • Retriability
  • Chaos Engineering
  • Connection/Channel Durability provided by HouseofCat.RabbitMQ formerly CookedRabbit.Core.

Built-Ins

  • Supports ILogger<T>
  • Concurrency/Parallelism - baked in from the ground up.
  • Contracted WorkState/WorkObject simplifies development and integration.
  • Has Json (3 flavors) and MessagePack serialization providers.
  • Allow transparent encryption/decryption steps.
  • Allow compression/decompression steps to reduce trip time over the wire.
  • Async Error Handling with Predicate triggers and an actionable callback.

Interchangeability

  • Allows you to replace serialization provider with HouseofCat Provider wrappers.
  • Allows you to replace encryption provider with HouseofCat Provider wrappers.
  • Allows you to replace compression provider with HouseofCat Provider wrappers.
  • Constructed to fully support Inversion of Control.

Business Logic

  • All steps process in the order provided allowing you to still control order of execution.
  • All automatically subscribed to Async Error handling by WorkState.IsFaulted flag.

Testing

  • All built-in steps will have integration tests that should remove concerns from end-user developer.
  • Future case will include much more complex abstract UnitTesting as time allows.
  • The developer should only need to unit test their functional business code.

Implicit Benefits

The benefits of a dataflow pattern extend beyond fancy machine learning and Tensorflows or high throughput GCP Dataflow for mass computation. When brought to the service level, it helps organize your code into more manageable blocks. You can still write monolithic functions, but you would be hamstringing yourself and scarificing concurrency and parallelism. By designing code into small functional steps, you always write better, cleaner, code reduced with cyclomatic complexity. That very same code is easier to UnitTest. The orchestration of the function calls are the order they are added allowing you extend the original functionality infinitely. You don't have to write deserialization or post-processing encryption/compression as they all baked in. Designing from the ground up with concurrency and parallelism, you stay nimble and fast - able to scale up internally, before horizontally and vertically, saving costs. All without needing code changed or refactored.

Lastly, after everything is said and done, all your business code is re-usable. Should you decide to abandon this workflow (:worried:) for a different mechanism, engine, or what not, all of your code will happily port to whatever other project / flow you are working with and so will all your testing making it a win win.

Help

You will find library usage examples in the examples folder. You also can find generic NetCore how-tos and tutorials located in there. The code quality of the entire library will improve over time. Codacy allows me to review code and openly share any pain points so submit a PR to help keep this an A rated library!

Check out each project for additional README.md. They will provide additional instructions/examples.

Status

Codacy Badge

master-build

Gitter

HouseofCat.Algorithms

NuGet
NuGet

A library that has a collection of algorithms as I have time to learn and play with them.

HouseofCat.Compression

NuGet
NuGet

A library that has a collection of builtin and 3rd party compression providers.

HouseofCat.Compression.LZ4

NuGet
NuGet

A library that focuses on implementing the LZ4 compression provider.

HouseofCat.Dapper

NuGet
NuGet

A library that provides a standard for Dapper implementation.

HouseofCat.Dapper.LegacySqlServer

NuGet
NuGet

A library that provides a standard System.Data.SqlClient implementation.

HouseofCat.Dapper.SqlServer

NuGet
NuGet

A library that provides a standard Microsoft.Data.SqlClient implementation.

HouseofCat.Dataflows

NuGet
NuGet

A library that provides the base magic Dataflows for Tesseract.

HouseofCat.Dataflows.Pipelines

NuGet
NuGet

A library that provides the base magic Pipelines for Tesseract.

HouseofCat.Encryption

NuGet
NuGet

A library that provides encryption contracts.

HouseofCat.Encryption.BouncyCastle

NuGet
NuGet

A library that provides encryption from the BouncyCastle provider.

HouseofCat.Extensions

NuGet
NuGet

A library that focuses on extending functionality to other objects.

HouseofCat.Extensions.Dataflows

NuGet
NuGet

A library that focuses on extending functionality to other dataflow related objects.

HouseofCat.Extensions.Host.Serilog

NuGet
NuGet

A library that focuses on extending IHost functionality to quickly setup Serilog.

HouseofCat.Framing

NuGet
NuGet

A library that focuses on simplifying reading groups of byte[] (designated as frames).

HouseofCat.Gremlins

NuGet
NuGet

A library that focuses on Chaos Engineering. Currently targets Windows OS.

HouseofCat.Gremlins.SqlServer

NuGet
NuGet

A library that focuses on Chaos Engineering with SqlServer. Currently targets System.Data.SqlClient.

HouseofCat.Hashing

NuGet
NuGet

A library that focuses on implementing hashing.

HouseofCat.Hashing.Argon

NuGet
NuGet

A library that focuses on implementing Argon hashing.

HouseofCat.Logger

NuGet
NuGet

A library that focuses on getting Microsoft.Extensions.LoggerFactory implemented adhoc globally.

HouseofCat.Network

NuGet
NuGet

A library that focuses on making it easier to deal with systems networking.

HouseofCat.RabbitMQ

NuGet
NuGet

A library that focuses on RabbitMQ connection and channel management to create fault tolerant Publishers and Consumers.

Formerly found at RabbitMQ.Core
NuGet
NuGet

Deprecated - Using Official Pivotal/VMWare client again.

HouseofCat.RabbitMQ.Client

NuGet
NuGet

A library that focuses on cloning the official Pivotal/VMWare RabbitMQ DotNetClient but ported to pure NetCore 3.1/5.x with small code enhancements.

Formerly found at RabbitMQ.Core
NuGet
NuGet

HouseofCat.RabbitMQ.Dataflows

NuGet
NuGet

A library that extends HouseofCat.RabbitMQ functionality by providing epic TPL Dataflow usage for Tesseract.

HouseofCat.RabbitMQ.Pipelines

NuGet
NuGet

A library that extends HouseofCat.RabbitMQ functionality by providing simplified TPL Dataflow usage called Pipelines.

HouseofCat.RabbitMQ.Services

NuGet
NuGet

A library that extends HouseofCat.RabbitMQ to simplify using the HouseofCat.RabbitMQ library.

HouseofCat.RabbitMQ.Services.Mailkit

NuGet
NuGet

A library that extends HouseofCat.RabbitMQ.Services to simplify using Mailkit (Email) with the HouseofCat.RabbitMQ library.

HouseofCat.RabbitMQ.Services.Twilio

NuGet
NuGet

A library that extends HouseofCat.RabbitMQ.Services to simplify using Twilio (SMS/TextMessages) with the HouseofCat.RabbitMQ library.

HouseofCat.RabbitMQ.WorkState

NuGet
NuGet

A library that creates the shared WorkState classes for HouseofCat.RabbitMQ.

HouseofCat.Reflection

NuGet
NuGet

A library that focuses on Reflection hackery.

HouseofCat.Serialization

NuGet
NuGet

A library that focuses on making it easier to deal with Serialization.

HouseofCat.Serialization.Json.Newtonsoft

NuGet
NuGet

A library that focuses on making it easier to deal with Newtonsoft Json Serialization.

HouseofCat.Serialization.Json.Utf8Json

NuGet
NuGet

A library that focuses on making it easier to deal with Utf8Json Json Serialization.

HouseofCat.Serialization.MessagePack

NuGet
NuGet

A library that focuses on making it easier to deal with MessagePack Serialization.

HouseofCat.Sockets

NuGet
NuGet

A library that focuses on making it easier to deal with socket communication.

HouseofCat.Sockets.Utf8Json

NuGet
NuGet

A library that focuses on making it easier to deal with sockets communication with Utf8Json.

HouseofCat.Utilities

NuGet
NuGet

A library that focuses on general purpose utilities and functions that simplify the coding experience.

HouseofCat.Windows.Keyboard

NuGet
NuGet

A library that focuses on interacting, filtering, and/or replaying user inputs on Windows, specifically Keyboard.

HouseofCat.Windows.NativeMethods

NuGet
NuGet

A library that focuses on consolidating Windows NativeMethods calls used by my libaries.

HouseofCat.Windows.Threading

NuGet
NuGet

A library that focuses on simplifying affinity and thread management.

HouseofCat.Windows.WMI

NuGet
NuGet

A library that focuses on performing System.Management (Windows.Compatibility.Pack) WMI Queries.

tesseract's People

Contributors

houseofcat avatar tiggerite avatar codacy-badger avatar

Stargazers

Mattias Homde avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.