Skip to content

Releases: fcoury/oxide

v0.1.7 🌈

23 Sep 19:06
Compare
Choose a tag to compare

We now have a shell to interact with OxideDB, very similar to MongoDB's own mongosh.

Just use the shell subcommand and you're gonna get a REPL much like the one below:

OxideShell

We also now allow matching on implicit arrays, meaning that a.b.c = 1 would match documents like { a: { b: [{ c: 1 }, { d: 2 }] } }, something we didn't do before.

Changes 🎉

v0.1.6 🌈

27 Aug 22:00
Compare
Choose a tag to compare

New Discord server! Join us here - https://discord.gg/f7RwsbWEVh

This release includes a lot of new features, mainly driven by attempting to run a Meteor application. The whole discussion started on this thread:

meteor/meteor#12150

Thanks @wreiske for reporting the issues you were finding and allowing me to fix the issues found on this use case.

Changes 🎉

  • Match arrays when searching for nested fields @fcoury (#69)
  • Add support for $addToSet on updates @fcoury (#65)
  • Add count command @fcoury (#63)
  • Allow creating indexes on nested fields using parent.child notation @fcoury (#61)
  • Adds $regex operator support @fcoury (#55)

Bugfixes 🐛

  • Fix $addToSet updates with Bson::DateTime values @fcoury (#68)
  • Fix findAndModify upsert with new flag returns the document in value @fcoury (#59)
  • Fix updates with non-string values @fcoury (#58)
  • Fix queries with object id @fcoury (#57)
  • Fix error when existing indexes are created @fcoury (#56)

v0.1.5 🌈

16 Aug 18:28
261d4d6
Compare
Choose a tag to compare

Super excited to have new people starring the project. To celebrate, this release has a lot of improvements and added support for MongoDB commands.

Highlights are:

  • On the Aggregation Pipeline, we highly improved support for the $project stage (check issue #37 for more information)
  • Also on the Aggregation Pipeline the new stages $count, $skip and $limit are now supported
  • The very complex findAndModify command landed with initial support (missing details are being tracked on issue #52)

Please let me know on Discussions section if you have any thoughts about the project!

Changes

  • Adds findAndModify command @fcoury (#51)
  • feat: added $limit and $skip aggregation pipeline stages @fcoury (#48)
  • feat: implements $count aggregation pipeline stage @fcoury (#47)
  • feat: improves coverage of the $project specs @fcoury (#43)
  • Spelling @jsoref (#41)
  • Fixes parsing date values ('$d') @fcoury (#42)
  • Improved error handling and propagation @fcoury (#40)

v0.1.4 🌈

29 Jul 01:36
dc67b97
Compare
Choose a tag to compare

Introducing a fresh Web interface for playing with your databases without a need for a client:

screenshot

This web interface was also published on our new domain, so you can play with the project without installing anything:

Click here to play with the project

And finally I recorded a 10 minutes video with an overview of OxideDB:

https://youtu.be/kAtjBVmB1GA

Oh, did I say we also added Docker support? 😄

Changes 🎉

  • feat: Web UI documentation and final tweaks @fcoury (#39)
  • feat: added Dockerfile @fcoury (#38)
  • Adds a web interface as a separate subcommand @fcoury (#14)

Bugfixes 🐛

  • fix: returns excluded fields as _jsonb on $project stage @fcoury

Enjoy!

v0.1.3 🌈

24 Jul 18:55
Compare
Choose a tag to compare

The main feature of this release is the addition of the initial Aggregation Pipeline support and a lot of bug fixes.

Changes 🎉

  • Initial Aggregation Pipeline implementation @fcoury (#36)
  • Adds _id field on insertions when not provided @fcoury (#32)
  • Added --debug flag @fcoury

Bug Fixes 🐛

  • Fix nested fields on find @fcoury (#34)
  • $in/$nin operator for nested objects @fcoury

v0.1.2

19 Jul 22:48
Compare
Choose a tag to compare

Changes

There was a lot of progress in this release, mostly getting the server to be able to run my own application.

We added a lot of new commands, fixed some protocol bugs and paved the way to better and less brittle testing.

New Features

  • Server now handles large documents, basically the server loop was optimized a lot
  • Support for indexes!
  • Added support for $in, $nin and $exists operators
  • New commands added:
    • create
    • listIndexes
    • dropDatabase
    • update including Replacement Documents, $set and $inc operations along with upsert and multi support (phew!)
    • delete command

Bug Fixes

Enhancements

  • A lot of improvements on how we handle existing operations

v0.1.1

13 Jul 22:02
Compare
Choose a tag to compare

Changes

This release highlight is making Studio 3T work nicely with our server:

image

This very popular client uses some specific version of the OP_MSG opcode that was a bit trickier to implement, but it's now completed.

Starting on this release, we'll also try to start providing Windows executables if our crates play nice.

New Features

  • Supports OP_MSG op-codes with kind=1 section. This is used by some client apps, like Studio 3T.

Bug Fixes

  • Proper fallback to environment variable DATABASE_URL when an .env file is absent and the --postgres-url parameter is not passed
  • Binds to 127.0.0.1 by default (as opposed to localhost that was failing on some machines)

Enhancements

  • Small overhaul on the message parsing, making it more intuitive
  • Removed crate local-ip-address that was causing the build to fail on Windows
  • Better error notifications when required configuration is not provided when starting the server
  • Improved initial README documentation for quick start

Other changes

  • Improvements on the testing infrastructure, allowing execution of integration tests straight from hexdumps (from Wireshark for instance)

v0.1.0

13 Jul 02:51
Compare
Choose a tag to compare

Initial Relase 🎉

This is the initial release with binaries for Linux and macOS ARM and Intel. Windows is likely coming later.

Features

  • Initial translation layer from MongoDB Wire Protocol to MongoDB Query JSON and finally to PostgreSQL SQL Statements
  • Basic support for insert and find commands

Full Changelog: https://github.com/fcoury/oxide/commits/v0.1.0