LiteDB

LiteDB - A .NET NoSQL Document Store in a single data file

MIT License

Stars
8.2K

Bot releases are hidden (Show)

LiteDB -

Published by mbdavid almost 8 years ago

New Features

  • Thread Safe - share your LiteDatabase instance across threads
  • MultiKey index - support index in array field
  • Faster than ever - compare results with SQLite here
  • LiteEngine - new simple class to access your documents
  • New checkpoint cache to support large transactions using journal file
  • BsonDocument implements IDictionary, BsonArray implements IList
  • Autocommit disabled support
  • Less 96 bytes per document
  • New: Upsert, FindIndex, Query.Not(Query), Query.Where(Func<>)
  • New BsonMapper class: support Fields and NonPublic members
  • FileStorage now supports OpenWrite("fileId")
  • Virtual index fields -.Index("total", x => x.Products.Sum(p => p.Price))
  • [BsonRefAttribute]
  • Shrink with change password
  • Open datafile in ReadOnly mode
  • LiteDB.Core was removed - LiteDB.dll is now NETStandard 1.4 (Supports UWP, Xamarin, Core, Mono)

Changes

  • Some methods are moved from LiteDatabase to LiteEngine (GetCollectionNames, CollectionExists, DropCollection, RenameCollection, Shrink). To access, use: db.Engine.GetCollectionNames().
  • New datafile version - no update yet

Roadmap to final release

  • Bugfixes
  • Upgrade datafile from v1.x and v2.x to 3
  • API be more compatible with 2.x (using [Obsolate])
  • LiteEngine.Dump
  • Update Wiki/Site
  • Write some code examples
LiteDB -

Published by mbdavid almost 8 years ago

Changes

  • Cache checkpoint removed
  • New parser ConnectionString
LiteDB -

Published by mbdavid about 8 years ago

Bugfix #284 - Revert connection string regex

LiteDB -

Published by mbdavid about 8 years ago

Bugfixes

  • Better error messages in deserialize #278
  • Connection string supports filename with "
  • Fix detect old version in shell
  • Tests missing password in encrypted datafile
  • Fix shrink bug
  • Adds FileHandler for UWP for better performance
LiteDB -

Published by mbdavid about 8 years ago

New features in v2

  • Portable version: LiteDB.Core (Supports UWP 8.1/10, Xaramin.iOS and Xaramin.Android)
  • Generic data access layer - can use any Stream or you can write your own disk access layer
  • Database encription option (using password= in connection string)
  • New memory cache manager (do not consume too memory in large inserts/updates)
  • Better mapping class from your entity to BsonDocument (like Configurations in EntityFramework)
  • Better cross reference with DbRef mapping (see unit tests examples)
  • Lazy engine load (open datafile only when run a command)
  • Reduce your database size with shrink()
  • Support for Initial Size and Limit Size database (connection string)
  • Complete re-write engine classes width full debug logger
  • Complete stats about data/index usage
  • Dump file to Import/Export your data using shell commands
  • Full documentation for v2 on Wiki
  • See more examples in http://www.litedb.org/

Changes

LiteDB -

Published by mbdavid about 8 years ago

New features in RC

  • Datafile encryption: now you can use password to protect your datafile (uses DES cryptography)
  • Database upgrade from v.0.9.0 and 1.0.x (use LiteDB.Shell.exe myold.db --upgrade mynew.db)
  • Export database as dump file (insert commands)
  • Added collections stats (data/index pages, disk usage, ...) shell: db.collection.stats

Changes in RC

  • Remove virtual fields
  • Better concurrency support
  • Better memory manager: using disk cache/journal in big transactions. Now LiteDB avoid too many memory consume when are reading/writing too long data loop in a collection.

Roadmap to v2

  • Compile in Portable Class Library
  • Only bug fixes
LiteDB -

Published by mbdavid over 8 years ago

New features in RC2

  • Portable version: NuGet package: Lite.Core that support PCL/UWP
  • New disk access (for safe concurrency) implementation
  • Transactions are back
  • No more ThreadSafe (only ProcessSafe). Always create LiteDatabase instances.
  • Close datafile after each command execution
  • BsonMapper.Global are back
  • RegisterAutoId<T> are back

Changes in RC2

  • To implement new disk read/write access, new datafile version was required.
  • Removed OnModelCreating. Use BsonMapper.Global instance
  • Removed UserVersion update checking. Now UserVersion is only an int stored in header page (update version must be developed in your solution)
LiteDB -

Published by mbdavid almost 9 years ago

New features in v2.0.0-beta

  • Generic data access layer - can use any Stream or you can write your own disk access layer
  • Better mapping class from your entity to BsonDocument (like Configurations in EntityFramework)
  • Virtual property (Formula) as index field
  • Better cross reference with DbRef mapping (see unit tests examples)
  • ThreadSafe / ProcessSafe
  • Lazy engine load (open datafile only when run a command)
  • Reduce your database size with shrink()
  • Support for Initial Size and Limit Size database (connection string)
  • Complete re-write engine classes width full debug logger
  • See more examples in http://www.litedb.org/

Breaking changes

  • Datafile version changed
  • InsertBulk is only Insert
  • There is no more transactions (begin, commit and rollback)
  • Removed UserVersion
  • There are more minor details that will be in wiki document with a "upgrade from 1.0 to 2.0" before release final version

This version is beta and can be changed before final release.

Roadmap to v2

  • A new implementation of UserVersion
  • CLIent tool (with shell support) for common tasks, like Import/Export/Shrink with of old versions (v0.9, v1.0.x) supports and data migrations
  • Update all wiki documentation (move to readme.io)
  • Compile in Portable Class Library (PCL) for mobile
LiteDB -

Published by mbdavid almost 9 years ago

Changes

  • Bugfix #60 - Incorrect BsonIndex ctor
  • Bugifx #61 - Deserialize nullable values
  • #69 Sign assembly to NuGet
LiteDB -

Published by mbdavid about 9 years ago

Changes

  • Bugfix #49
LiteDB - v1.0.2

Published by mbdavid over 9 years ago

Changes

  • Fix some bugs with _type on BsonMapper
LiteDB - v1.0.1

Published by mbdavid over 9 years ago

Changes

  • Remove full document scan in Find operations - using auto-creation index when there is no field index
  • Bugfix #21 and #29
  • Implements _type when using interfaces/generic object #32 and #27 - thanks to @francoislg
  • Added support to boolean Linq operations, like x => x.IsActive - thanks to Lars Stenberg
LiteDB - v1.0.0

Published by mbdavid over 9 years ago

New

  • New Wiki documentation !! 😃
  • New BsonSerializer removing fastBinaryJson and implement real BSON specification
  • New BsonMapper to get more configurable POCO from/to BsonDocument
  • BsonMapper supports user custom type converter
  • New JsonReader implementation: 4 times faster
  • New ObjectId to be used in Id documents
  • BsonDocument supports only BSON data types as specification
  • Index creation options - remove whitespaces, remove accents, ignore case.
  • [BsonIndex] to mark your entity property to auto create index when query
  • Autogeneration Id for entity Id property
  • Find() can be executed without an index (will execute a full document scan)
  • Index use same MongoDB data type order when CompareTo()
  • FindAll() supports ascending/descending results
  • New Query.Contains
  • Min()/Max() value from an index
  • DbRef<> - a simple class for reference document

Changes

  • Drop collection and drop index improved
  • Removed _master collection - avoid 1 page read
  • Removed WebShell from this repository
  • New file format: v4

Breaking changes

To prepare LiteDB to future, version 1.x break compatibility with 0.x. Small external changes, but very important to make a better source structure:

Upgranding from v0.x

  • .NET Framework 4 only (to use Task<> in future)
  • LiteEngine is now LiteDatabase
  • Collection is now LiteCollection
  • FileEntry is now LiteFileInfo
  • Remove BsonObject - now only exits BsonDocument
  • Remove BsonDocument#Id - use BsonDocument#["_id"]
LiteDB - v0.9.0

Published by mbdavid over 9 years ago

New

  • New read/write pages to get a very fast disk operations
  • Diferent free spaces on diferent page types (DataPage and IndexPage)
  • Support for Id and <ClassName>Id identity in POCO class
  • New datafile format

Changes

  • Updates on README
  • Bugfix on load ExtendPages
LiteDB -

Published by mbdavid over 9 years ago

New

  • Improve disk writes. More than 200% performance increase on upload files.
  • Improve write ExtendPage - no more recursive
  • Improve performance for search available page
  • Increase MaxDocumentSize to 1MB
  • Static bulk method for insert
  • Added and/or operators for query filter in shell
  • Added "timer" command on shell
  • Minor code fixes

Changes

  • Removed unfinish code. Will be release in future versions
  • Remove MaxFileLength
  • Move shell commands to LiteDB project