Welcome to EverybodyWiki 😃 ! Nuvola apps kgpg.png Log in or ➕👤 create an account to improve, watchlist or create an article like a 🏭 company page or a 👨👩 bio (yours ?)...

Microsoft Bond

From EverybodyWiki Bios & Wiki






Microsoft Bond is an open-source cross-platform framework used for working with schematized data. It uses an interface description language to describe the structure of the data, which is used for generating code in a targeted programming language to parse or emit a stream of bytes representing this structured data. It is used broadly in Microsoft's cloud services,[1][2][3] including the A1 distributed in-memory database used by Bing,[4][5] and Azure Relay.[6]

Microsoft Bond
Developer(s)Microsoft
Initial releaseJanuary 2015
Engine
    Operating systemWindows, macOS, Linux
    PlatformCross-platform
    Typeserialization format and library, IDL compiler
    LicenseMIT License
    Website{{URL|example.com|optional display text}}

    Amazon.com Logo.png Search Microsoft Bond on Amazon.

    Overview[edit]

    Microsoft announced and open sourced Bond in early 2015 under the MIT License.[7] It is used schema rules and a rich type system to serialize and deserialize data in a backwards and forwards compatible manner.

    Bond currently supports C++, C#, Java and Pyton on Lunux, MacOS and Windows.[1]

    Microsoft Bond is similar to the Apache Thrift (used by Facebook), Ion (created by Amazon), or Protocol Buffers (created by Google).[8][9]

    Data structures are defined in a .bond file and compiled via gbc, the Bond compiler/codegen tool.

    Example[edit]

    Bond schemas are defined in with field names, along with integers that identify each field. The protocol itself only uses the integers, saving space for the field names during the transmission of the data. The names are only used in the generated code for readability.

    namespace Examples
    
    struct Record
    {
        0: string Name;
        1: vector<double> Constants;
    }

    Language support[edit]

    Bond currently supports:[10]

    • C++ (requires C++11)
    • C#
    • Java
    • Python

    See also[edit]

    • Comparison of data-serialization formats

    References[edit]

    1. 1.0 1.1 "A Thorough Guide to Bond for C#". microsoft.github.io. Retrieved 2020-09-18.
    2. "Azure Relay – cross-platform, open-protocol connections". azure.microsoft.com. Retrieved 2020-09-19.
    3. "The week in .NET - Bond - The Gallery". .NET Blog. 2016-10-18. Retrieved 2020-09-19.
    4. Buragohain, Chiranjeeb; Risvik, Knut Magne; Brett, Paul; Castro, Miguel; Cho, Wonhee; Cowhig, Joshua; Gloy, Nikolas; Kalyanaraman, Karthik; Khanna, Richendra; Pao, John; Renzelmann, Matthew (2020-06-11). "A1: A Distributed In-Memory Graph Database". Proceedings of the 2020 ACM SIGMOD International Conference on Management of Data. SIGMOD '20. Portland, OR, USA: Association for Computing Machinery: 329–344. arXiv:2004.05712. doi:10.1145/3318464.3386135. ISBN 978-1-4503-6735-6. Unknown parameter |s2cid= ignored (help)
    5. "Bing.com runs on .NET Core 2.1!". .NET Blog. 2018-08-20. Retrieved 2020-09-21.
    6. "Azure Relay – cross-platform, open-protocol connections". azure.microsoft.com. Retrieved 2020-11-24.
    7. "Microsoft Open Sources Cross-platform Serialization Library – Bond". InfoQ. Retrieved 2020-09-15.
    8. "What are Protocol Buffers? Will they replace JSON?". Code Wall. 2019-10-16. Retrieved 2020-09-19.
    9. "Is JSON and XML your REST performance bottleneck?". TheServerSide.com. Retrieved 2020-09-19.
    10. microsoft/bond, Microsoft, 2020-09-16, retrieved 2020-09-18

    External links[edit]


    Other articles of the topic Free and open-source software : SWC-DB, Xaraya, ProtonMail, Dino (software), Koseven (framework), Sobi2, Gumpy
    Some use of "" in your query was not closed by a matching "".Some use of "" in your query was not closed by a matching "".


    This article "Microsoft Bond" is from Wikipedia. The list of its authors can be seen in its historical and/or the page Edithistory:Microsoft Bond. Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.