bond

Bond is a cross-platform framework for working with schematized data. It supports cross-language de/serialization and powerful generic mechanisms for efficiently manipulating data. Bond is broadly used at Microsoft in high scale services.

MIT License

Downloads
10.3K
Stars
2.6K
Committers
58

Bot releases are hidden (Show)

bond - 5.1.0

Published by chwarr over 7 years ago

5.1.0: 2016-11-14

  • gbc & compiler library: 0.7.0.0
  • IDL core version: 2.0
  • IDL comm version: 1.2
  • C++ version: 5.1.0
  • C# NuGet version: 5.1.0
  • C# Comm NuGet version: 0.9.0

gbc and Bond compiler library

  • Added initial support for generating C++ Comm services and proxies.
  • The Haskell utility functions structName and structParams were renamed
    to className and classParams (in the Language.Bond.Codegen.Cpp.Util
    module).

C++ Comm

  • The initial C++ Comm code has been merged in, but there is still work left
    to be done before the first preview release. Use at your own risk.

C#

  • Bond C# now supports
    .NET Standard 1.0, 1.3, and 1.6,
    so you can use Bond in .NET Core applications.
    Pull request #243
    • Not all assemblies work with all versions of the .NET Standard or on
      all platforms. The
      manual
      lists which assemblies target which frameworks.
    • Bond C# Comm is not yet building with .NET Core toolchain, so its
      .NET Core support is preliminary.
  • Bond.JSON now depends on Newsoft.JSON 9.0.1, the earliest version that
    supports .NET Standard 1.0.
  • A new assembly, Bond.Reflection.dll, has been added, due to some internal
    refactoring needed for .NET Core support. Many of the Bond assemblies now
    have a dependency on this assembly, so you'll need to deploy it. If you
    use NuGet to consume Bond, this is should be handled automatically.
  • Fixed a bug in the MSBuild targets that caused codegen to always be run if
    all of the BondCodegen items have Options metadata.
  • Fixed a bug in the MSBuild targets that caused compilation to fail if the
    $BondOutputDirectory did not end with a trailing slash.

C# Comm

  • The constructor for LayerStackProvider no longer requires a logger;
    instead, the transport's logger is passed to OnSend/OnReceive. Before,
    using the same logger with a transport and LayerStackProvider required a
    duplicate implementation.
  • Fixed a bug that prevented EpoxyListener from accepting multiple
    connections in parallel.
bond - cs-comm-0.8.0

Published by chwarr over 7 years ago

C# Comm 0.8.0: 2016-10-12

  • C# Comm NuGet version: 0.8.0

C# Comm

  • EpoxyTransport can be configured to enable TCP keep-alive to help detect
    dead connections. See EpoxyTransportBuilder.SetKeepAliveTimes for
    details.
bond - 4.3.0

Published by chwarr about 8 years ago

This release has been recalled. Please use 5.0.0 instead. See the CHANGELOG for what was changed.

bond - 4.2.1

Published by chwarr about 8 years ago

4.2.1: 2016-06-02

  • gbc & compiler library: 0.4.1.0
  • C# NuGet version: 4.2.1
  • C# Comm NuGet version: 0.5.0

gbc

C#

  • Added
    Deserializer.TryDeserialize().
  • Added two new
    NuGet packages
    to make it easier to consume Bond piecemeal.
    • Bond.Compiler: contains gbc, bond.bond, and bond_const.bond in a
      tools-only package
    • Bond.Compiler.CSharp: contains gbc and C# MSBuild targets. No longer
      do you have to consume Bond.CSharp (which pulls in all of the rest of
      Bond) just to get codegen.

C# Comm

bond - 4.2.0

Published by chwarr about 8 years ago

4.2.0: 2016-04-28

  • gbc & compiler library: 0.4.0.2
  • C# NuGet version: 4.2.0

C#

  • Add support for Compact Binary v2 writing.
    Issue #70
bond - 4.1.0

Published by chwarr about 8 years ago

4.1.0: 2016-04-22

  • gbc & compiler library: 0.4.0.2
  • C# NuGet version: 4.1.0

gbc

C++

  • Enums are now cast to 32-bit integers to avoid some compiler warnings.
  • Bond can be used in code bases where there is a function-style macro named
    U.

C#

bond - 5.0.0

Published by chwarr about 8 years ago

5.0.0: 2016-09-12

  • gbc & compiler library: 0.6.0.0
  • IDL core version: 2.0
  • IDL comm version: 1.1
  • C++ version: 5.0.0
  • C# NuGet version: 5.0.0
  • C# Comm NuGet version: 0.7.0

IDL comm

  • Update IDL to conform to naming conventions.
  • Adjust IDL for changes made to Epoxy internals

C++

  • Generated enum types now have a FromEnum method that can be used to
    convert from an enum value to a string. Now generated enum types have all
    four of ToEnum, FromEnum, ToString, and FromString. (The ...Enum
    variants return false on failure, while the ...String variants throw.)
  • Runtime SchemaDef list_sub_type field removed, as it was breaking some
    consumers of serialized SchemaDef. We plan to restore this field in the
    future.
    Issue #161 re-opened

C#

  • Runtime SchemaDef list_sub_type field removed, as it was breaking some
    consumers of serialized SchemaDef. We plan to restore this field in the
    future.
    Issue #161 re-opened
  • The Bond.Runtime NuGet package no longer artificially limits
    Newtonsoft.Json to versions before 10.
    Issue #212

C# Comm

  • EpoxyListeners can now be configured to require clients to authenticate
    themselves with a certificate. This is configured via the
    clientCertificateRequired parameter when creating an
    EpoxyServerTlsConfig.
  • Internals of the Epoxy protocol cleaned up. See the
    updated wire format specification.
bond - 4.0.2

Published by chwarr about 8 years ago

4.0.2: 2015-12-14

  • gbc & compiler library: 0.4.0.1
  • C# NuGet version: 4.0.2

Bond compiler library

C#