Skip to content

Commit

Permalink
Some more concurence analysis
Browse files Browse the repository at this point in the history
  • Loading branch information
SRombauts committed Apr 9, 2012
1 parent 49f91ba commit 8cf6d8e
Show file tree
Hide file tree
Showing 2 changed files with 60 additions and 21 deletions.
5 changes: 5 additions & 0 deletions TODO.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ Missing features :
- execScalar() easy wrapper like CppSqlite
- TableExists
- batch mode managing multiple queries semicolon separated
- support for different transaction mode

- Function ?
- Agregate ?
Expand All @@ -20,3 +21,7 @@ Add optionnal usage of experimental sqlite3_trace() function to enable statistic

Post an article to CodeProject : Is there a license issue ?
Mirror the repository to GoogleCode : with a versionned downloadable ZIP file

Documentation:
- explain the noncopyable property for RAII design
- comment on returning error code instead of exception that shall not be thrown when exepected (!?)
76 changes: 55 additions & 21 deletions wrappers.md
Original file line number Diff line number Diff line change
@@ -1,48 +1,82 @@
http://www.sqlite.org/cvstrac/wiki?p=SqliteWrappers
http://stackoverflow.com/questions/120295/what-is-a-good-oo-c-wrapper-for-sqlite
http://stackoverflow.com/questions/818155/sqlite-alternatives-for-c
http://www.reddit.com/search?q=sqlite


- **SQLite++**: uses boost build system, Boost License 1.0 (http://sqlitepp.berlios.de/)
- **CppSQLite**: famous Code Project but old design, BSD License (http://www.codeproject.com/Articles/6343/CppSQLite-C-Wrapper-for-SQLite/)


**sqlite3cc**: http://ed.am/dev/sqlite3cc/
- v0.1
- Nov 2009, Jan 2012
- Nov 2009, Jan 2012 (v0.1)
- (++) modern design, use RAII => can be a source of inspiration for me
- (++) very well documented, in code and with a very good informal presentation
- (+) is maintained (recent), initial release is 0.1.0, January 2012 (started in 2010)
- (+/-) uses boost (some more dependancies...)
- (-) uses boost coding style (I tend to prefer CamelCaps or Java coding style)
- (-) a bit complicated : offer many way to do the same thing where I would prefer a clean choice
- (-) a bit complex: offer many way to do the same thing where I would prefer a clean choice
- (-) thus it does not impose RAII, as it is still possible to open or close a database outside constructor/destructor
- (---) LPGPL : for me, this is a stopper as I would like to be able to use it in commercial products
- (---) LPGPL: for me, this is a stopper as I would like to be able to use it in commercial products
- bazaar: http://bzr.ed.am/sqlite3cc
- bugtracker: personal: trac is still to be installed to http://dev.ed.am/sqlite3cc

=> inspiration :
- bind named parameters,
- support for different transaction mode
- comment on returning error code instead of exception that shall not be thrown when exepected (!?)
- explain the noncopyable property for RAII design
- test suite: a simple main with boost filesystem (build librairy) depandancy

**sqdbcpp**: http://code.google.com/p/sqdbcpp/
- Dec 2009 (no more activity)
- (++) new BSD license
- (+) CamelCaps
- (++) RAII design, with some good ideas, like the "Convertor" class
- (++) modern design, use RAII
- (+) CamelCaps naming convention
- (+) STL is the only depandancy
- (+) RAII design, with some good ideas,
- (-) but with some unnecessary complexity, and some unused code (RefCount...)
- (-) UTF-8/UTF-16 : the second is not portable
- (--) Not documented
- (---) Not maintained/not finished : contact author !?
- (+) very small code
- (-) not RAII transactions
- (-) some unnecessary complexity to manage copyable objects (RefCount)
- (-) UTF-8/UTF-16: the second is not portable
- (--) Not documented (only a short example
- (---) Not maintained/not finished: contact author !?
- SVN: http://sqdbcpp.googlecode.com/svn/trunk/
- bugtracker: GoogleCode: http://code.google.com/p/sqdbcpp/issues/list
- test suite: with gtest

**sqlite3pp**: http://code.google.com/p/sqlite3pp/
- Sep 2007 to Mar 2009
- (++) MIT License
- (++) modern design, use RAII => can be a source of inspiration for me
- (+/-) uses boost (some more dependancies...)
- (-) complex: offer many way to do the same thing, and advance functionalities
- (--) Not documented in code
- (---) Not maintained, many open issues
- SVN: http://sqlite3pp.googlecode.com/svn/trunk/
- bugtracker: GoogleCode: http://code.google.com/p/sqlite3pp/issues/list

**SQLite++**: http://sqlitepp.berlios.de/
- Jan 2006 until now (Apr 2012)
- (++) still maintained
- (++) Boost License 1.0
- (+) good online introduction
- (+/-) uses boost (some more dependancies...)
-
- (-) uses boost build system
- (-) come with yet another unicode string library
- (-) too complex and big to dive easily into
- (--) Not documented in code
- SVN: https://svn.berlios.de/svnroot/repos/sqlitepp/trunk/
- bugtracker: no!
- test suite: yes, with bjam

**CppSQLite**: http://www.codeproject.com/Articles/6343/CppSQLite-C-Wrapper-for-SQLite/
- Mar 2004, Jun 2011
- (+/-) BSD License? CodeProject License?
- (+) famous CodeProject, good introductory article
- (--) Not documented in code
- (--) old design, no RAII
- (--) unnecessary complex memory allocation for exception
- VCS: no! but cloned twice on GitHub
- bugtracker: no!
- test suite: no, only some demo code.

**easySQLite**: http://code.google.com/p/easysqlite/
- Sep 2010
- (+/-) Manage table as objects, requiring to define their structure
- (-) not RAII
- (--) complex
- (---) Not maintained, some open issues
- SVN: http://easysqlite.googlecode.com/svn/trunk/
- bugtracker: http://code.google.com/p/easysqlite/source/list
- test suite: yes, a big one, with UnitTest++

0 comments on commit 8cf6d8e

Please sign in to comment.