在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例一般编程问题 → Hyperion:.NET框架下的高性能多态序列化技术

Hyperion:.NET框架下的高性能多态序列化技术

一般编程问题

下载此实例
  • 开发语言:Others
  • 实例大小:2.80M
  • 下载次数:0
  • 浏览次数:37
  • 发布时间:2024-04-15
  • 实例类别:一般编程问题
  • 发 布 人:chenxiaolan
  • 文件格式:.zip
  • 所需积分:2
 相关标签:

实例介绍

【实例简介】
Hyperion是一款专为.NET框架开发的高性能多态序列化工具,目前处于BETA测试阶段(v0.9.14)。它采用Apache 2.0许可证授权。Hyperion的设计初衷是为了在分布式系统中,如服务总线或基于actor模型的系统中,安全地传递消息。

在基于消息的系统中,接收到不同类型的消息并对这些消息进行模式匹配是很常见的。如果消息没有携带足够的类型信息到接收方,那么消息可能就无法精确匹配系统期望的内容。例如,当使用基于Json的序列化器时,由于Json无法描述小数值的类型,因此数字1.2很可能被反序列化为double类型。而Hyperion通过为每个值编码一个清单——对于原始值是单字节前缀,对于复杂类型则是完全限定的程序集名称,从而解决了这一问题。

有时,某些对象可能无法以安全的方式进行序列化,因为这些对象在某种程度上是上下文相关的。Hyperion通过使用“代理”来解决这些问题,代理是一种将对象从绑定到上下文的表示形式转换回来的方式。这对于像Akka.NET这样的框架至关重要,我们需要能够在反序列化系统中解析活动的Actor引用。

为了安全原因,有时我们需要限制允许反序列化的类型。出于这个原因,您可以将实现ITypeFilter接口的类实例传递给SerializerOptions,或使用TypeFilterBuilder类构建Hyperion可以使用的TypeFilter,以在反序列化期间过滤掉任何可能的有害注入攻击。


【实例截图】
【核心代码】
文件清单
└── Hyperion-32ba7b584bf4171870925818253dac5dc9e3f041
    ├── build.cmd
    ├── build.fsx
    ├── build.ps1
    ├── build.sh
    ├── build-system
    │   ├── azure-pipeline.template.yaml
    │   ├── nightly-builds.yaml
    │   ├── pr-validation.yaml
    │   ├── README.md
    │   ├── windows-pr-validation.yaml
    │   └── windows-release.yaml
    ├── docs
    │   ├── api
    │   │   └── index.md
    │   ├── articles
    │   │   ├── index.md
    │   │   └── toc.yml
    │   ├── docfx.json
    │   ├── images
    │   │   └── icon.png
    │   ├── index.md
    │   └── toc.yml
    ├── Hyperion.sln
    ├── LICENSE
    ├── README.md
    ├── RELEASE_NOTES.md
    └── src
        ├── common.props
        ├── Hyperion
        │   ├── Attributes.cs
        │   ├── ByteArrayKeyComparer.cs
        │   ├── ByteArrayKey.cs
        │   ├── Compilation
        │   │   ├── Compiler.cs
        │   │   ├── ExpressionEx.cs
        │   │   ├── ICompiler.cs
        │   │   ├── IlBuilder.cs
        │   │   ├── IlCompilerContext.cs
        │   │   ├── IlCompiler.cs
        │   │   └── IlExpression.cs
        │   ├── DefaultCodeGenerator.cs
        │   ├── Delegates.cs
        │   ├── DeserializeSession.cs
        │   ├── Extensions
        │   │   ├── ReflectionEx.cs
        │   │   ├── StreamEx.cs
        │   │   ├── StringEx.cs
        │   │   └── TypeEx.cs
        │   ├── Hyperion.csproj
        │   ├── ICodeGenerator.cs
        │   ├── Internal
        │   │   └── Annotations.cs
        │   ├── ITypeFilter.cs
        │   ├── NoAllocBitConverter.cs
        │   ├── Properties
        │   │   └── AssemblyInfo.cs
        │   ├── Serializer.cs
        │   ├── SerializerFactories
        │   │   ├── AggregateExceptionSerializerFactory.cs
        │   │   ├── ArraySerializerFactory.cs
        │   │   ├── ConsistentArraySerializerFactory.cs
        │   │   ├── ConstructorInfoSerializerFactory.cs
        │   │   ├── DefaultDictionarySerializerFactory.cs
        │   │   ├── DelegateSerializerFactory.cs
        │   │   ├── DictionarySerializerFactory.cs
        │   │   ├── EnumerableSerializerFactory.cs
        │   │   ├── ExceptionSerializerFactory.cs
        │   │   ├── ExpandoObjectSerializerFactory.cs
        │   │   ├── FieldInfoSerializerFactory.cs
        │   │   ├── FromSurrogateSerializerFactory.cs
        │   │   ├── FSharpListSerializerFactory.cs
        │   │   ├── FSharpMapSerializerFactory.cs
        │   │   ├── ImmutableCollectionsSerializerFactory.cs
        │   │   ├── ISerializableSerializerFactory.cs
        │   │   ├── MethodInfoSerializerFactory.cs
        │   │   ├── MultipleDimensionalArraySerialzierFactory.cs
        │   │   ├── PropertyInfoSerializerFactory.cs
        │   │   ├── ToSurrogateSerializerFactory.cs
        │   │   └── ValueSerializerFactory.cs
        │   ├── SerializerOptions.cs
        │   ├── SerializerSession.cs
        │   ├── Surrogate.cs
        │   ├── TypeFilterBuilder.cs
        │   ├── TypeFilter.cs
        │   └── ValueSerializers
        │       ├── BoolSerializer.cs
        │       ├── ByteArraySerializer.cs
        │       ├── ByteSerializer.cs
        │       ├── CharSerializer.cs
        │       ├── ConsistentArraySerializer.cs
        │       ├── DateTimeOffsetSerializer.cs
        │       ├── DateTimeSerializer.cs
        │       ├── DecimalSerializer.cs
        │       ├── DoubleSerializer.cs
        │       ├── FloatSerializer.cs
        │       ├── FromSurrogateSerializer.cs
        │       ├── GuidSerializer.cs
        │       ├── Int16Serializer.cs
        │       ├── Int32Serializer.cs
        │       ├── Int64Serializer.cs
        │       ├── KnownTypeObjectSerializer.cs
        │       ├── NullSerializer.cs
        │       ├── ObjectReferenceSerializer.cs
        │       ├── ObjectSerializer.cs
        │       ├── SByteSerializer.cs
        │       ├── SessionAwareByteArrayRequiringValueSerializer.cs
        │       ├── SessionAwareByteArrayRequiringValueSerializer.cs.orig
        │       ├── SessionIgnorantValueSerializer.cs
        │       ├── StringSerializer.cs
        │       ├── SystemObjectSerializer.cs
        │       ├── ToSurrogateSerializer.cs
        │       ├── TypeSerializer.cs
        │       ├── UInt16Serializer.cs
        │       ├── UInt32Serializer.cs
        │       ├── UInt64Serializer.cs
        │       ├── UnsupportedTypeSerializer.cs
        │       └── ValueSerializer.cs
        ├── Hyperion.Akka.Integration.Tests
        │   ├── Hyperion.Akka.Integration.Tests.csproj
        │   └── IntegrationSpec.cs
        ├── Hyperion.API.Tests
        │   ├── CoreApiSpec.ApproveApi.approved.txt
        │   ├── CoreAPISpec.cs
        │   └── Hyperion.API.Tests.csproj
        ├── Hyperion.Benchmarks
        │   ├── Hyperion.Benchmarks.csproj
        │   ├── Program.cs
        │   ├── Prolog.cs
        │   ├── SerializeClassesBenchmark.cs
        │   ├── SerializeCollectionsBenchmark.cs
        │   ├── SerializeFSharpDataTypesBenchmark.cs
        │   ├── SerializeImmutableCollectionsBenchmark.cs
        │   ├── SerializePrimitivesBenchmark.cs
        │   ├── SerializeStructsBenchmark.cs
        │   └── TypeRejectionBenchmark.cs
        ├── Hyperion.Tests
        │   ├── AttributeTests.cs
        │   ├── Bugs.cs
        │   ├── CollectionTests.cs
        │   ├── CrossFrameworkSerializationTests.cs
        │   ├── CustomObjectTests.cs
        │   ├── CyclicTests.cs
        │   ├── DelegateTests.cs
        │   ├── EncapsulationTests.cs
        │   ├── ExpressionTests.cs
        │   ├── FSharpTests.cs
        │   ├── Generator
        │   │   ├── CrossFrameworkClass.cs
        │   │   ├── CrossFrameworkEnum.cs
        │   │   ├── CrossFrameworkInitializer.cs
        │   │   ├── CrossFrameworkStruct.cs
        │   │   └── Program.cs
        │   ├── GenericDictionarySerializerTests.cs
        │   ├── Hyperion.Tests.csproj
        │   ├── IlCompilerTests.cs
        │   ├── ImmutableCollectionsTests.cs
        │   ├── IncompleteStreamTests.cs
        │   ├── InterfaceTests.cs
        │   ├── ISerializableTests.cs
        │   ├── lib
        │   │   ├── Microsoft.VisualStudio.Text.UI.Wpf.dll
        │   │   ├── PresentationFramework.dll
        │   │   ├── System.Activities.Presentation.dll
        │   │   ├── System.Drawing.Design.dll
        │   │   ├── System.Drawing.dll
        │   │   ├── System.IdentityModel.dll
        │   │   ├── System.Web.dll
        │   │   ├── System.Web.Mobile.dll
        │   │   └── System.Windows.Forms.dll
        │   ├── PartialStreamTests.cs
        │   ├── PrimitivesTests.cs
        │   ├── Properties
        │   │   └── launchSettings.json
        │   ├── Something.cs
        │   ├── SurrogateTests.cs
        │   ├── TestBase.cs
        │   ├── testfiles
        │   │   ├── mixed_test_file_.netcoreappversionv2.0.tf
        │   │   ├── mixed_test_file_.netcoreappversionv2.1.tf
        │   │   ├── mixed_test_file_.netcoreappversionv2.2.tf
        │   │   ├── mixed_test_file_.netcoreappversionv3.0.tf
        │   │   ├── mixed_test_file_.netcoreappversionv3.1.tf
        │   │   ├── mixed_test_file_.netcoreappversionv5.0.tf
        │   │   ├── mixed_test_file_.netframeworkversionv4.6.1.tf
        │   │   ├── test_file_.netcoreappversionv2.0.tf
        │   │   ├── test_file_.netcoreappversionv2.1.tf
        │   │   ├── test_file_.netcoreappversionv2.2.tf
        │   │   ├── test_file_.netcoreappversionv3.0.tf
        │   │   ├── test_file_.netcoreappversionv3.1.tf
        │   │   ├── test_file_.netcoreappversionv5.0.tf
        │   │   └── test_file_.netframeworkversionv4.6.1.tf
        │   ├── UnsafeDeserializationExclusionTests.cs
        │   └── UnsupportedTypeSerializerTests.cs
        ├── Hyperion.Tests.FSharpData
        │   ├── Hyperion.Tests.FSharpData.fsproj
        │   └── Types.fs
        ├── xunit.runner.json
        └── xunitSettings.props

23 directories, 176 files

标签:

实例下载地址

Hyperion:.NET框架下的高性能多态序列化技术

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警