All Projects → boostorg → contract

boostorg / contract

Licence: BSL-1.0 License
Contract programming for C++

Programming Languages

C++
36643 projects - #6 most used programming language

Projects that are alternatives of or similar to contract

nim-contra
Lightweight Self-Documenting Design by Contract Programming and Security Hardened mode.
Stars: ✭ 46 (+64.29%)
Mutual labels:  contracts-programming, contracts, design-by-contract
adhesion-rs
D-inspired contract programming in Rust using macros
Stars: ✭ 49 (+75%)
Mutual labels:  design-by-contracts, contracts-programming, design-by-contract
ethereum-erc20
Fungible token implementation for the Ethereum blockchain.
Stars: ✭ 27 (-3.57%)
Mutual labels:  contract, contracts
djburger
Framework for safe and maintainable web-projects.
Stars: ✭ 75 (+167.86%)
Mutual labels:  contracts-programming, design-by-contract
ethereum-crowdsale
0xcert protocol crowdsale contracts for Ethereum blockchain.
Stars: ✭ 15 (-46.43%)
Mutual labels:  contract, contracts
erc721
The reference implementation of the ERC-721 non-fungible token standard.
Stars: ✭ 989 (+3432.14%)
Mutual labels:  contract, contracts
laravel-web3
Laravel SDK wrapper for the Web3 PHP API client that interacts with the Ethereum blockchain.
Stars: ✭ 85 (+203.57%)
Mutual labels:  contract, contracts
python-autoclass
A python 3 library providing functions and decorators to automatically generate class code, such as constructor body or properties getters/setters along with optional support of validation contracts on the generated setters. Its objective is to reduce the amount of copy/paste code in your classes - and hence to help reducing human mistakes :).
Stars: ✭ 30 (+7.14%)
Mutual labels:  contracts
mtxclient
Client API library for Matrix, built on top of Boost.Asio
Stars: ✭ 21 (-25%)
Mutual labels:  boost
Light.GuardClauses
A lightweight .NET library for expressive Guard Clauses.
Stars: ✭ 68 (+142.86%)
Mutual labels:  design-by-contract
notary
A contracts broker that provides a declarative way of sharing, validating & discovering contracts between multiple projects.
Stars: ✭ 16 (-42.86%)
Mutual labels:  contracts
commonpp
Small library helping you with basic stuff like getting metrics out of your code, thread naming, etc.
Stars: ✭ 29 (+3.57%)
Mutual labels:  boost
zork
Full C++-17 port of the 616-point version of Zork from MIT circa 1978-1981
Stars: ✭ 16 (-42.86%)
Mutual labels:  boost
CryptoLogos
Hundreds of crypto logos simply named by their normalized contract address
Stars: ✭ 14 (-50%)
Mutual labels:  contract
python-valid8
Yet another validation lib ;). Provides tools for general-purpose variable validation, function inputs/outputs validation as well as class fields validation. All entry points raise consistent ValidationError including all contextual details, with dynamic inheritance of ValueError/TypeError as appropriate.
Stars: ✭ 24 (-14.29%)
Mutual labels:  contract
ethereum-dex
Decentralized exchange implementation for the 0xcert protocol on the Ethereum blockchain.
Stars: ✭ 18 (-35.71%)
Mutual labels:  contract
tbag
Tea-bag is Third party extension utility project
Stars: ✭ 13 (-53.57%)
Mutual labels:  boost
asio-extensions
Additional functionality built on top of (Boost.)Asio
Stars: ✭ 16 (-42.86%)
Mutual labels:  boost
software-consulting-documents
Software Consulting Legal Documents
Stars: ✭ 14 (-50%)
Mutual labels:  contracts
scelta
(experimental) Syntactic sugar for variant and optional types.
Stars: ✭ 140 (+400%)
Mutual labels:  boost

Boost.Contract

Contract programming for C++. All contract programming features are supported: Subcontracting, class invariants (also static and volatile), postconditions (with old and return values), preconditions, customizable actions on assertion failure (e.g., terminate or throw), optional compilation and checking of assertions, disable assertions while already checking other assertions (to avoid infinite recursion), etc.

License

Distributed under the Boost Software License, Version 1.0.

Properties

  • C++11 (C++03 possible but not recommended without lambda functions and variadic macros, see documentation for more information).
  • Shared Library / DLL with BOOST_CONTRACT_DYN_LINK (static library with BOOST_CONTRACT_STATIC_LINK, header-only also possible but not recommended, see BOOST_CONTRACT_HEADER_ONLY documentation for more information).

Build Status

Branch Travis Appveyor Coverity Scan codecov.io Deps Docs Tests
master Build Status Build status Coverity Scan Build Status codecov Deps Documentation Enter the Matrix
develop Build Status Build status Coverity Scan Build Status codecov Deps Documentation Enter the Matrix

Directories

Name Purpose
build Build
doc Documentation
example Examples
include Header code
meta Integration with Boost
src Source code
test Unit tests

More Information

  • Ask questions.
  • Report bugs: Be sure to mention Boost version, platform and compiler you are using. A small compilable code sample to reproduce the problem is always good as well.
  • Submit your patches as pull requests against develop branch. Note that by submitting patches you agree to license your modifications under the Boost Software License, Version 1.0.
  • Discussions about the library are held on the Boost developers mailing list. Be sure to read the discussion policy before posting and add the [contract] text at the beginning of the subject line.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].