{"id":17032996,"url":"https://github.com/tonyredondo/twcore2","last_synced_at":"2025-04-12T12:51:37.031Z","repository":{"id":60773815,"uuid":"98977150","full_name":"tonyredondo/TWCore2","owner":"tonyredondo","description":"A multipurpose framework library for .NET","archived":false,"fork":false,"pushed_at":"2023-10-22T15:03:40.000Z","size":20903,"stargazers_count":34,"open_issues_count":2,"forks_count":3,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-04-10T13:18:27.918Z","etag":null,"topics":["csharp","dotnet","dotnet-core","dotnet-framework","dotnet-standard","dotnetcore"],"latest_commit_sha":null,"homepage":"https://www.nuget.org/packages?q=Tags%3A\"TWCore\"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tonyredondo.png","metadata":{"files":{"readme":"README-NUGET.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":null,"patreon":null,"open_collective":null,"ko_fi":"tonyredondo","tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2017-08-01T08:17:06.000Z","updated_at":"2024-10-31T06:12:15.000Z","dependencies_parsed_at":"2024-10-14T08:41:47.206Z","dependency_job_id":null,"html_url":"https://github.com/tonyredondo/TWCore2","commit_stats":{"total_commits":2141,"total_committers":5,"mean_commits":428.2,"dds":"0.35824381130312943","last_synced_commit":"b04122555038423555c4dfed5dc40362ce80b4dd"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tonyredondo%2FTWCore2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tonyredondo%2FTWCore2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tonyredondo%2FTWCore2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tonyredondo%2FTWCore2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tonyredondo","download_url":"https://codeload.github.com/tonyredondo/TWCore2/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248571401,"owners_count":21126517,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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","dotnet","dotnet-core","dotnet-framework","dotnet-standard","dotnetcore"],"created_at":"2024-10-14T08:31:36.121Z","updated_at":"2025-04-12T12:51:37.024Z","avatar_url":"https://github.com/tonyredondo.png","language":"C#","funding_links":["https://ko-fi.com/tonyredondo"],"categories":[],"sub_categories":[],"readme":"# TWCore 3.1\n[![Build status](https://ci.appveyor.com/api/projects/status/6jvbgouxmvd0wh3j/branch/master?svg=true)](https://ci.appveyor.com/project/tonyredondo/twcore2/branch/master)\n[![Nuget](https://img.shields.io/nuget/vpre/TWCore.svg)](https://www.nuget.org/packages?q=Tags%3A\"TWCore\")\n\nA multipurpose framework library used to create microservices solutions on multiple platforms (runs on windows, linux, linux-arm [raspberry pi], and osx).\n\n### Compatible with\n- .NET Framework 4.7.2\n- netstandard2.0\n- netcoreapp2.1\n- netcoreapp2.2\n- netcoreapp3.1\n- net5.0\n- net6.0\n- net7.0\n- net8.0\n\n## Advantages\n\n- Easy development of microservices: With fewer code you can subscribe to a message broker and start to process messages as pub/sub or RPC architecture.\n- Completely agnostic and loosely coupled: All subsystems of the framework are registered with a dependency injector engine, so using only the configurations files you can switch between Messages brokers, Serialization formats, Rpc transports, Stream compressors, and many more.\n- Integrated Log, Trace, and Status engines: you can log on different storage, also use differents trace storages and you have an integrated status library to check your service health.\n- A bot subsystem to create bot services on Telegram and Slack\n- Extensions methods for objects, strings, and IEnumerables.\n- Aspnet Core object viewer and compiler developer tool.\n\n#### Supported log storages\n- Console\n- File\n- Html File\n- MessageBroker\n- ElasticSearch\n- Mail\n\n#### Supported trace storages\n- File\n- MessageBroker\n\n#### Supported compressors\n- Gzip\n- Deflate\n- Brotli\n\n#### Supported messages brokers\n\n- RabbitMQ\n- NATS\n- NSQ\n- Kafka\n- Redis (Pub/Sub)\n\n#### Supported key/value cache storages\n\n- Custom TWCore\n- Redis\n\n#### Supported bot connectors\n\n- Slack\n- Telegram\n\n#### Supported serializers\n\n- Newtonsoft JsonNet\n- XmlSerializer\n- BinaryFormatter\n- Utf8Json\n- MsgPack\n- **NSerializer** (Custom binary serializer with object reference graph support and cyclic reference)\n- **RawSerializer** (Like NSerializer but without internal caching, faster, but serialized objects are bigger in bytes size.)\n\n---\n\n### Simple Object Serializer Benchmark\n```\nBenchmarkDotNet=v0.11.3, OS=Windows 10.0.17134.523 (1803/April2018Update/Redstone4)\\\nIntel Core i7-4770R CPU 3.20GHz (Haswell), 1 CPU, 8 logical and 4 physical cores\\\n.NET Core SDK=2.2.101\\\n  [Host] : .NET Core 2.2.0 (CoreCLR 4.6.27110.04, CoreFX 4.6.27110.04), 64bit RyuJIT\\\n  Core   : .NET Core 2.2.0 (CoreCLR 4.6.27110.04, CoreFX 4.6.27110.04), 64bit RyuJIT\\\nJob=Core  Runtime=Core\n```\n|                                Method | N |      Mean |     Error |    StdDev |       Min |       Max | Gen 0/1k Op | Gen 1/1k Op | Gen 2/1k Op | Allocated Memory/Op |\n|-------------------------------------- |-- |----------:|----------:|----------:|----------:|----------:|------------:|------------:|------------:|--------------------:|\n|      NewtonsoftJsonSerializerToStream | 1 | 42.935 us | 0.4296 us | 0.4019 us | 42.123 us | 43.608 us |      3.6621 |      0.1831 |           - |             23296 B |\n|  NewtonsoftJsonDeserializerFromStream | 1 | 78.432 us | 1.5565 us | 1.4560 us | 76.154 us | 80.546 us |      3.5400 |      0.8545 |           - |             22960 B |\n|                 XmlSerializerToStream | 1 | 45.512 us | 0.3721 us | 0.3299 us | 44.858 us | 46.154 us |      1.8921 |           - |           - |             12224 B |\n|             XmlDeserializerFromStream | 1 | 91.809 us | 1.4537 us | 1.3598 us | 89.874 us | 94.327 us |      4.5166 |      0.3662 |           - |             28608 B |\n|     BinaryFormatterSerializerToStream | 1 | 53.381 us | 0.5491 us | 0.5137 us | 52.418 us | 54.022 us |      2.5635 |           - |           - |             16504 B |\n| BinaryFormatterDeserializerFromStream | 1 | 44.802 us | 0.5174 us | 0.4840 us | 43.914 us | 45.613 us |      3.6011 |      0.4883 |           - |             22720 B |\n|            Utf8JsonSerializerToStream | 1 |  7.609 us | 0.1364 us | 0.1276 us |  7.429 us |  7.832 us |           - |           - |           - |                   - |\n|        Utf8JsonDeserializerFromStream | 1 | 20.249 us | 0.2015 us | 0.1885 us | 20.009 us | 20.641 us |      0.9460 |      0.1831 |           - |              6016 B |\n|         MessagePackSerializerToStream | 1 |  7.777 us | 0.0682 us | 0.0638 us |  7.658 us |  7.900 us |           - |           - |           - |                96 B |\n|     MessagePackDeserializerFromStream | 1 | 11.087 us | 0.1592 us | 0.1489 us | 10.795 us | 11.419 us |      1.3123 |      0.3204 |           - |              8272 B |\n|                   NSerializerToStream | 1 |  7.823 us | 0.1440 us | 0.1347 us |  7.607 us |  8.051 us |           - |           - |           - |                   - |\n|               NDeserializerFromStream | 1 |  7.301 us | 0.0702 us | 0.0657 us |  7.106 us |  7.405 us |      0.4425 |      0.0458 |           - |              2800 B |\n|                 RawSerializerToStream | 1 |  6.574 us | 0.1298 us | 0.1275 us |  6.375 us |  6.781 us |           - |           - |           - |                   - |\n|             RawDeserializerFromStream | 1 |  7.837 us | 0.0655 us | 0.0613 us |  7.748 us |  7.937 us |      0.5569 |      0.0763 |           - |              3520 B |\n\n![Serializer Graph](https://raw.githubusercontent.com/tonyredondo/TWCore2/master/doc/serializer-deserializer1.png)\n\n**Created by Tony Redondo**\n\n## Powered By\nThanks to @jetbrains for helping on this development with the licenses for Rider, dotTrace and dotMemory\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftonyredondo%2Ftwcore2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftonyredondo%2Ftwcore2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftonyredondo%2Ftwcore2/lists"}