Giter Club home page Giter Club logo

bson-cpp's Introduction

bson-cpp

The standalone BSON C++ implementation.

"BSON" stands for "binary JSON" - a binary storage format that is JSON inspired.

This is the C++ implementation, developed by http://www.10gen.com/ for http://www.mongodb.org/. This distribution merely rips it out of the mongodb repository into its own.

Other BSON implementations are available for most languages at http://bsonspec.org.

Status: beta

Note that this is not yet ready for production. While all the majority of the code has been thoroughly tested in the mongodb distribution, this fork is not yet proved stable.

Building

The build system here uses autotools. It is a bit unconventional: it hides all the autotools magic inside of build/, so all you have to do is:

make

=)

The top level Makefile will call configure and the generated Makefile (inside build/). The product is build/libbsoncpp.la. You can then link against it.

Installing

To install the library and headers in /usr/local, just run:

make install

Usage

You want to link against the library, and then:

#include <bson/bson.h>

Check out the headers, particularly bson.h. The project is not fully well setup though, so you may have to include other headers for now.

License

I am not quite sure what BSON's license is. I'll check with 10gen. mongodb carries both an Apache and a GNU-AGPL license (included in this dist).

bson-cpp's People

Contributors

acmorrow avatar agirbal avatar astaple avatar dwight avatar erh avatar jbenet avatar redbeard0531 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bson-cpp's Issues

Write documentation

Make wiki with docs and examples.
Also I need to know the library's external interface to make it shared/

suse 11 compile fix

Target: x86_64-suse-linux
gcc version 4.3.4

file: build\Makefile
AM_CPPFLAGS = -O0 -Wall -ggdb -Isrc $(BOOST_CPPFLAGS) &lt;&gt; AM_CPPFLAGS = -O0 -Wall -Werror -ggdb -Isrc $(BOOST_CPPFLAGS)

LDADD = $(BOOST_THREAD_LIBS) libbsoncpp.la -lboost_system &lt;&gt; LDADD = $(BOOST_THREAD_LIBS) libbsoncpp.la -lboost_system-mt

file: lib\base64.h

include <string.h> <> #include

file: lib\nonce.cpp
_devrandom = new std::ifstream("/dev/urandom", ios::binary|ios::in); <> _devrandom = new ifstream("/dev/urandom", ios::binary|ios::in);

file: lib\nonce.h

include< fstream >

using namespace std;

OSX Compilation Error

In file included from src/bsonobj.cpp:21:
src/bsonobj.h:24:29: error: util/atomic_int.h: No such file or directory
In file included from src/util/../bsonassert.h:40,
from src/util/hex.h:20,
from src/oid.h:20,
from src/bsonobj.cpp:20:
src/util/../util/builder.h: In member function 'void bson::StringBuilder::appendDoubleNice(double)':
src/util/../util/builder.h:277: error: 'assert' was not declared in this scope
src/util/../util/builder.h: In member function 'bson::StringBuilder& bson::StringBuilder::SBNUM(T, int, const char_)':
src/util/../util/builder.h:313: error: there are no arguments to 'assert' that depend on a template parameter, so a declaration of 'assert' must be available
src/util/../util/builder.h:313: error: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)
In file included from src/bsonobj.h:27,
from src/bsonobj.cpp:21:
src/bsonelement.h: At global scope:
src/bsonelement.h:73: error: 'mongo' has not been declared
src/bsonelement.h:73: error: ISO C++ forbids declaration of 'OID' with no type
src/bsonelement.h:73: error: expected ';' before 'OID'
src/bsonelement.h:74: error: expected `;' before 'void'
In file included from src/bsonobj.cpp:21:
src/bsonobj.h:93: error: expected ',' or '...' before '' token
src/bsonobj.h:93: error: ISO C++ forbids declaration of 'Record' with no type
src/bsonobj.h:456: error: 'AtomicUInt' does not name a type
src/bsonobj.h: In member function 'void bson::BSONObj::Holder::zero()':
src/bsonobj.h:460: error: 'refCount' was not declared in this scope
src/bsonobj.h: In function 'void bson::intrusive_ptr_add_ref(bson::BSONObj::Holder
)':
src/bsonobj.h:463: error: 'class bson::BSONObj::Holder' has no member named 'refCount'
src/bsonobj.h: In function 'void bson::intrusive_ptr_release(bson::BSONObj::Holder_)':
src/bsonobj.h:468: error: 'class bson::BSONObj::Holder' has no member named 'refCount'
In file included from src/util/../bson.h:42,
from src/util/json.h:21,
from src/bsonobj.cpp:27:
src/util/../bson-inl.h: In member function 'int bson::BSONElement::size() const':
src/util/../bson-inl.h:634: error: 'Bool' is not a member of 'mongo'
src/util/../bson-inl.h:641: error: 'Date' is not a member of 'mongo'
src/util/../bson-inl.h:651: error: 'String' is not a member of 'mongo'
src/util/../bson-inl.h:659: error: 'Array' is not a member of 'mongo'
src/bsonobj.cpp: At global scope:
src/bsonobj.cpp:448: error: redefinition of 'int bson::BSONElement::woCompare(const bson::BSONElement&, bool) const'
src/util/../bson-inl.h:156: error: 'int bson::BSONElement::woCompare(const bson::BSONElement&, bool) const' previously defined here
src/bsonobj.cpp: In function 'int bson::compareElementValues(const bson::BSONElement&, const bson::BSONElement&)':
src/bsonobj.cpp:465: error: redefinition of 'int bson::compareElementValues(const bson::BSONElement&, const bson::BSONElement&)'
src/util/../bson-inl.h:38: error: 'int bson::compareElementValues(const bson::BSONElement&, const bson::BSONElement&)' previously defined here
src/bsonobj.cpp: At global scope:
src/bsonobj.cpp:812: error: prototype for 'void bson::BSONObj::getFieldsDotted(const bson::StringData&, bson::BSONElementSet&) const' does not match any in class 'bson::BSONObj'
src/bsonobj.h:190: error: candidates are: void bson::BSONObj::getFieldsDotted(const bson::StringData&, bson::BSONElementMSet&, bool) const
src/bsonobj.h:189: error: void bson::BSONObj::getFieldsDotted(const bson::StringData&, bson::BSONElementSet&, bool) const
src/bsonobj.cpp: In member function 'void bson::BSONObj::getFieldsDotted(const bson::StringData&, bson::BSONElementSet&) const':
src/bsonobj.cpp:822: error: call of overloaded 'getFieldsDotted(const char_&, std::set<bson::BSONElement, bson::BSONElementCmpWithoutField, std::allocatorbson::BSONElement >&)' is ambiguous
src/bsonobj.h:189: note: candidates are: void bson::BSONObj::getFieldsDotted(const bson::StringData&, bson::BSONElementSet&, bool) const
src/bsonobj.cpp:812: note: void bson::BSONObj::getFieldsDotted(const bson::StringData&, bson::BSONElementSet&) const
src/bsonobj.cpp:833: error: call of overloaded 'getFieldsDotted(const char_&, std::set<bson::BSONElement, bson::BSONElementCmpWithoutField, std::allocatorbson::BSONElement >&)' is ambiguous
src/bsonobj.h:189: note: candidates are: void bson::BSONObj::getFieldsDotted(const bson::StringData&, bson::BSONElementSet&, bool) const
src/bsonobj.cpp:812: note: void bson::BSONObj::getFieldsDotted(const bson::StringData&, bson::BSONElementSet&) const
src/bsonobj.cpp:840: error: call of overloaded 'getFieldsDotted(const char_&, std::set<bson::BSONElement, bson::BSONElementCmpWithoutField, std::allocatorbson::BSONElement >&)' is ambiguous
src/bsonobj.h:189: note: candidates are: void bson::BSONObj::getFieldsDotted(const bson::StringData&, bson::BSONElementSet&, bool) const
src/bsonobj.cpp:812: note: void bson::BSONObj::getFieldsDotted(const bson::StringData&, bson::BSONElementSet&) const
src/bsonobj.cpp: At global scope:
src/bsonobj.cpp:963: error: redefinition of 'int bson::BSONObj::getIntField(const char_) const'
src/util/../bson-inl.h:276: error: 'int bson::BSONObj::getIntField(const char_) const' previously defined here
src/bsonobj.cpp:968: error: redefinition of 'bool bson::BSONObj::getBoolField(const char_) const'
src/util/../bson-inl.h:281: error: 'bool bson::BSONObj::getBoolField(const char_) const' previously defined here
src/bsonobj.cpp:973: error: redefinition of 'const char_ bson::BSONObj::getStringField(const char_) const'
src/util/../bson-inl.h:286: error: 'const char_ bson::BSONObj::getStringField(const char_) const' previously defined here
src/bsonobj.cpp: In member function 'int bson::BSONObj::addFields(bson::BSONObj&, std::set<std::basic_string<char, std::char_traits, std::allocator >, std::less<std::basic_string<char, std::char_traits, std::allocator > >, std::allocator<std::basic_string<char, std::char_traits, std::allocator > > >&)':
src/bsonobj.cpp:1024: error: no matching function for call to 'bson::BSONObj::init(char_, bool)'
src/bsonobj.h:481: note: candidates are: void bson::BSONObj::init(bson::BSONObj::Holder_)
src/bsonobj.h:485: note: void bson::BSONObj::init(const char_)
make[1]: *** [libbsoncpp_la-bsonobj.lo] Error 1
make: *** [all] Error 2

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.