PackageTrack
Sign in Get early access

github.com/rethinkdb/rethinkdb-go

v4.0.0+incompatible #1032 most downloaded on Go modules rethinkdb/rethinkdb-go

What this package is like to depend on

Last release 9 years ago

no release in 18 months

Release timing varies

gaps range from 9 days to 5 months

Some releases are documented

notes for 25 of 44 stable releases

Nothing withdrawn

no release was ever pulled

12 years old

50 releases · first in 2014

0 releases in the last 12 months

see the full history below

Release timeline

50 releases · Jul 2014 to Dec 2017
2015 2017 2019 2021 2023 2025
Release Pre-release

Releases

latest 50
  1. v4.0.0+incompatible 14 Dec 2017

    Nothing published for this version

  2. v3.0.5+incompatible 28 Sep 2017

    Nothing published for this version

  3. v3.0.4+incompatible 04 Sep 2017

    Nothing published for this version

  4. v3.0.3+incompatible 03 Sep 2017

    Nothing published for this version

  5. v3.0.2+incompatible 17 Apr 2017

    Nothing published for this version

  6. v3.0.1+incompatible 30 Jan 2017

    Nothing published for this version

  7. v3.0.0+incompatible 06 Dec 2016

    Nothing published for this version

  8. v2.2.2+incompatible 25 Sep 2016

    Nothing published for this version

  9. v2.2.1+incompatible 20 Sep 2016

    Nothing published for this version

  10. v2.2.0+incompatible 17 Aug 2016

    Nothing published for this version

  11. v2.1.3+incompatible 01 Aug 2016

    Nothing published for this version

  12. v2.1.2+incompatible 22 Jul 2016

    Nothing published for this version

  13. v2.1.1+incompatible 12 Jul 2016

    Nothing published for this version

  14. v2.1.0+incompatible 26 Jun 2016

    Nothing published for this version

  15. v2.0.4+incompatible 22 May 2016

    Nothing published for this version

  16. v2.0.3+incompatible 12 May 2016

    Nothing published for this version

  17. v2.0.2+incompatible 18 Apr 2016

    Nothing published for this version

  18. v2.0.1+incompatible 14 Apr 2016

    Nothing published for this version

  19. v2.0.0+incompatible 13 Apr 2016

    Nothing published for this version

  20. v1.4.2-0.20170416223114-4d301de25e1c 16 Apr 2017 pre-release

    Nothing published for this version

  21. v1.4.1 02 Apr 2016
    Release notes

    Fixed

    • Fixed panic when closing a connection at the same time as using a changefeed.
    • Update imports to correctly use gopkg.in
    • Fixed race condition when using anonymous functions
    • Fixed IsConflictErr and IsTypeErr panicking when passed nil errors
    • RunWrite no longer misformats errors with formatting directives in them
    Open source →
  22. v1.4.0 15 Mar 2016
    Release notes

    Added

    • Added the ability to reference subdocuments when inserting new documents, for more information see the documentation in the readme.
    • Added the SetTags function which allows RethinkDB-go to override which tags are used when working with structs. For example to support the json add the following call SetTags("gorethink", "json").
    • Added helper functions for checking the error type of a write query, this is useful when calling RunWrite.
      • Added IsConflictErr which returns true when RethinkDB returns a duplicate key error.
      • Added IsTypeErr which returns true when RethinkDB returns an unexpected type error.
    • Added the RawQuery term which can be used to execute a raw JSON query, for more information about this query see the godoc.
    • Added the NextResponse function to Cursor which will return the next raw JSON response in the result set.
    • Added ability to set the keep alive period by setting the KeepAlivePeriod field in ConnectOpts.

    Fixed

    • Fixed an issue that could prevent bad connections from being removed from the connection pool.
    • Fixed certain connection errors not being returned as RqlConnectionError when calling Run, Exec or RunWrite.
    • Fixed potential dead lock in connection code caused when building the query.
    Open source →
    Release notes

    Added

    • Added the ability to reference subdocuments when inserting new documents, for more information see the documentation in the readme.
    • Added the SetTags function which allows GoRethink to override which tags are used when working with structs. For example to support the json add the following call SetTags("gorethink", "json").
    • Added helper functions for checking the error type of a write query, this is useful when calling RunWrite.
      • Added IsConflictErr which returns true when RethinkDB returns a duplicate key error.
      • Added IsTypeErr which returns true when RethinkDB returns an unexpected type error.
    • Added the RawQuery term which can be used to execute a raw JSON query, for more information about this query see the godoc.
    • Added the NextResponse function to Cursor which will return the next raw JSON response in the result set.
    • Added ability to set the keep alive period by setting the KeepAlivePeriod field in ConnectOpts.

    Fixed

    • Fixed an issue that could prevent bad connections from being removed from the connection pool.
    • Fixed certain connection errors not being returned as RqlConnectionError when calling Run, Exec or RunWrite.
    • Fixed potential dead lock in connection code caused when building the query.
    Open source →
  23. v1.3.2 01 Feb 2016
    Release notes

    Fixed

    • Fixed race condition in cursor which caused issues when closing a cursor that is in the process of fetching data.
    Open source →
  24. v1.3.1 22 Jan 2016
    Release notes

    Added

    • Added more documentation and examples for GetAll.

    Fixed

    • Fixed RunWrite not deferring its call to Cursor.Close(). This could cause issues if an error occurred when decoding the result.
    • Fixed panic when calling Error() on a RethinkDB-go rqlError.
    Open source →
    Release notes

    Added

    • Added more documentation and examples for GetAll.

    Fixed

    • Fixed RunWrite not defering its call to Cursor.Close(). This could cause issues if an error occurred when decoding the result.
    • Fixed panic when calling Error() on a GoRethink rqlError.
    Open source →
  25. v1.3.0 11 Jan 2016
    Release notes

    Added

    • Added new error types, the following error types can now be returned: RQLClientError, RQLCompileError, RQLDriverCompileError, RQLServerCompileError, RQLAuthError, RQLRuntimeError, RQLQueryLogicError, RQLNonExistenceError, RQLResourceLimitError, RQLUserError, RQLInternalError, RQLTimeoutError, RQLAvailabilityError, RQLOpFailedError, RQLOpIndeterminateError, RQLDriverError, RQLConnectionError. Please note that some other errors can be returned.
    • Added IsConnected function to Session.

    Fixed

    • Fixed panic when scanning through results caused by incorrect queue implementation.
    Open source →
  26. v1.2.0 19 Nov 2015
    Release notes

    Added

    • Added UUID term
    • Added Values term
    • Added IncludeInitial and ChangefeedQueueSize to ChangesOpts
    • Added UseJSONNumber to ConnectOpts which changes the way the JSON unmarshal works when deserializing JSON with interface{}, it's preferred to use json.Number instead float64 as it preserves the original precision.
    • Added HostDecayDuration to ConnectOpts to configure how hosts are selected. For more information see the godoc.

    Changed

    • Timezones from time.Time are now stored in the database, before all times were stored as UTC. To convert a go time.Time back to UTC you can call t.In(time.UTC).
    • Improved host selection to use hailocab/go-hostpool to select nodes based on recent responses and timings.
    • Changed connection pool to use fatih/pool instead of a custom connection pool, this has caused some internal API changes and the behaviour of MaxIdle and MaxOpen has slightly changed. This change was made mostly to make driver maintenance easier.
      • MaxIdle now configures the initial size of the pool, the name of this field will likely change in the future.
      • Not setting MaxOpen no longer creates an unbounded connection pool per host but instead creates a pool with a maximum capacity of 2 per host.

    Deprecated

    • Deprecated the option NodeRefreshInterval in ConnectOpts
    • Deprecated SetMaxIdleConns and SetMaxOpenConns, these options should now only be set when creating the session.

    Fixed

    • Fixed some type aliases not being correctly encoded when using Expr.
    Open source →
  27. v1.1.4 02 Oct 2015
    Release notes

    Added

    • Added root table terms (r.TableCreate, r.TableList and r.TableDrop)

    Removed

    • Removed ReadMode option from RunOpts and ExecOpts (incorrectly added in v1.1.0)

    Fixed

    • Fixed Decode no longer setting pointer to nil on document not found
    • Fixed panic when fetchMore returns an error
    • Fixed deadlock when closing changefeed
    • Fixed stop query incorrectly waiting for response
    • Fixed pointers not to be properly decoded
    Open source →
  28. v1.1.3 06 Sep 2015
    Release notes

    Fixed

    • Fixed pointers not to be properly decoded
    • Fixed queries always timing out when Timeout ConnectOpt is set.
    Open source →
  29. v1.1.2 28 Aug 2015
    Release notes

    Fixed

    • Fixed issue when encoding some maps
    Open source →
  30. v1.1.1 21 Aug 2015
    Release notes

    Fixed

    • Corrected protobuf import
    • Fixed documentation
    • Fixed issues with time pseudotype conversion that caused issues with milliseconds
    Open source →
  31. v1.1.0 19 Aug 2015
    Release notes

    Added

    • Replaced UseOutdated with ReadMode
    • Added EmergencyRepair and NonVotingReplicaTags to ReconfigureOpts
    • Added Union as a root term
    • Added Branch as a root term
    • Added ReadTimeout and WriteTimeout to RunOpts and ExecOpts
    • Exported github.com/Sirupsen/logrus.Logger as Log
    • Added support for encoding maps with non-string keys
    • Added 'Round', 'Ceil' and 'Floor' terms
    • Added race detector to CI

    Changed

    • Changed Timeout connect argument to only configure the connection timeout.
    • Replaced Db with DB in RunOpts and ExecOpts (Db still works for now)
    • Made Cursor and Session safe for concurrent use
    • Replaced ErrClusterClosed with ErrConnectionClosed
    Open source →
  32. v1.0.1-0.20150629204229-a719288a591d 29 Jun 2015 pre-release

    Nothing published for this version

  33. v1.0.0 29 Jun 2015
    Release notes

    1.0.0 is finally here, This is the first stable production ready release of RethinkDB-go!

    In an attempt to make this library more "idiomatic" some functions have been renamed, for the full list of changes and bug fixes see below.

    Added

    • Added more documentation.
    • Added Shards, Replicas and PrimaryReplicaTag optional arguments in TableCreateOpts.
    • Added MultiGroup and MultiGroupByIndex which are equivalent to the running group with the multi optional argument set to true.

    Changed

    • Renamed Db to DB.
    • Renamed DbCreate to DBCreate.
    • Renamed DbDrop to DBDrop.
    • Renamed RqlConnectionError to RQLConnectionError.
    • Renamed RqlDriverError to RQLDriverError.
    • Renamed RqlClientError to RQLClientError.
    • Renamed RqlRuntimeError to RQLRuntimeError.
    • Renamed RqlCompileError to RQLCompileError.
    • Renamed Js to JS.
    • Renamed Json to JSON.
    • Renamed Http to HTTP.
    • Renamed GeoJson to GeoJSON.
    • Renamed ToGeoJson to ToGeoJSON.
    • Renamed WriteChanges to ChangeResponse, this is now a general type and can be used when dealing with changefeeds.
    • Removed depth limit when encoding values using Expr

    Fixed

    • Fixed issue causing errors when closing a changefeed cursor (#191)
    • Fixed issue causing nodes to remain unhealthy when host discovery is disabled (#195)
    • Fixed issue causing driver to fail when connecting to DB which did not have its canonical address set correctly (#200).
    • Fixed ongoing queries not being properly stopped when closing the cursor.

    Removed

    • Removed CacheSize and DataCenter optional arguments in TableCreateOpts.
    • Removed CacheSize optional argument from InsertOpts
    Open source →
    Release notes

    1.0.0 is finally here, This is the first stable production ready release of GoRethink!

    In an attempt to make this library more "idiomatic" some functions have been renamed, for the full list of changes and bug fixes see below.

    Added

    • Added more documentation.
    • Added Shards, Replicas and PrimaryReplicaTag optional arguments in TableCreateOpts.
    • Added MultiGroup and MultiGroupByIndex which are equivalent to the running group with the multi optional argument set to true.

    Changed

    • Renamed Db to DB.
    • Renamed DbCreate to DBCreate.
    • Renamed DbDrop to DBDrop.
    • Renamed RqlConnectionError to RQLConnectionError.
    • Renamed RqlDriverError to RQLDriverError.
    • Renamed RqlClientError to RQLClientError.
    • Renamed RqlRuntimeError to RQLRuntimeError.
    • Renamed RqlCompileError to RQLCompileError.
    • Renamed Js to JS.
    • Renamed Json to JSON.
    • Renamed Http to HTTP.
    • Renamed GeoJson to GeoJSON.
    • Renamed ToGeoJson to ToGeoJSON.
    • Renamed WriteChanges to ChangeResponse, this is now a general type and can be used when dealing with changefeeds.
    • Removed depth limit when encoding values using Expr

    Fixed

    • Fixed issue causing errors when closing a changefeed cursor (#191)
    • Fixed issue causing nodes to remain unhealthy when host discovery is disabled (#195)
    • Fixed issue causing driver to fail when connecting to DB which did not have its canonical address set correctly (#200).
    • Fixed ongoing queries not being properly stopped when closing the cursor.

    Removed

    • Removed CacheSize and DataCenter optional arguments in TableCreateOpts.
    • Removed CacheSize optional argument from InsertOpts
    Open source →
  34. v1.0.0-rc.3 22 Jun 2015 pre-release

    Nothing published for this version

  35. v1.0.0-rc.2 11 Jun 2015 pre-release

    Nothing published for this version

  36. v1.0.0-rc.1 07 Jun 2015 pre-release

    Nothing published for this version

  37. v0.7.2 05 May 2015
    Release notes

    Added

    • Added support for connecting to a server using TLS (#179)

    Fixed

    • Fixed issue causing driver to fail to connect to servers with the HTTP admin interface disabled (#181)
    • Fixed errors in documentation (#182, #184)
    • Fixed RunWrite not closing the cursor (#185)
    Open source →
  38. v0.7.1 19 Apr 2015
    Release notes

    Changed

    • Improved logging of connection errors.

    Fixed

    • Fixed bug causing empty times to be inserted into the DB even when the omitempty tag was set.
    • Fixed node status refresh loop leaking goroutines.
    Open source →
  39. v0.7.0 14 Apr 2015
    Release notes

    This release includes support for RethinkDB 2.0 and connecting to clusters. To connect to a cluster you should use the new Addresses field in ConnectOpts, for example:

    session, err := r.Connect(r.ConnectOpts{
        Addresses: []string{"localhost:28015", "localhost:28016"},
    })
    if err != nil {
        log.Fatalln(err.Error())
    }
    

    Also added was the ability to read from a cursor using a channel, this is especially useful when using changefeeds. For more information see this gist

    cursor, err := r.Table("items").Changes()
    ch := make(chan map[string]interface{})
    cursor.Listen(ch)
    

    For more details checkout the README and godoc. As always if you have any further questions send me a message on Gitter.

    • Added the ability to connect to multiple nodes, queries are then distributed between these nodes. If a node stops responding then queries stop being sent to this node.
    • Added the DiscoverHosts optional argument to ConnectOpts, when this value is true the driver will listen for new nodes added to the cluster.
    • Added the Addresses optional argument to ConnectOpts, this allows the driver to connect to multiple nodes in a cluster.
    • Added the IncludeStates optional argument to Changes.
    • Added MinVal and MaxVal which represent the smallest and largest possible values.
    • Added the Listen cursor helper function which publishes database results to a channel.
    • Added support for optional arguments for the Wait function.
    • Added the Type function to the Cursor, by default this value will be "Cursor" unless using a changefeed.
    • Changed the IndexesOf function to OffsetsOf .
    • Changed driver to use the v0.4 protocol (used to use v0.3).
    • Fixed geometry tests not properly checking the expected results.
    • Fixed bug causing nil pointer panics when using an Unmarshaler
    • Fixed dropped millisecond precision if given value is too old
    Open source →
  40. v0.6.3 04 Mar 2015
    Release notes

    Added

    • Add IdentifierFormat optarg to TableOpts (#158)

    Fixed

    • Fix struct alignment for ARM and x86-32 builds (#153)
    • Fix sprintf format for geometry error message (#157)
    • Fix duplicate if block (#159)
    • Fix incorrect assertion in decoder tests
    Open source →
  41. v0.6.2 15 Feb 2015
    Release notes
    • Fixed writeQuery being too small when sending large queries
    Open source →
  42. v0.6.1 13 Feb 2015
    Release notes
    • Reduce GC by using buffers when reading and writing
    • Fixed encoding time.Time ignoring milliseconds
    • Fixed pointers in structs that implement the Marshaler/Unmarshaler interfaces being ignored
    Open source →
    Release notes
    • Reduce GC by using buffers when reading and writing
    • Fixed encoding time.Time ignoring millseconds
    • Fixed pointers in structs that implement the Marshaler/Unmarshaler interfaces being ignored
    Open source →
  43. v0.6.0 01 Feb 2015
    Release notes

    There are some major changes to the driver with this release that are not related to the RethinkDB v1.16 release. Please have a read through them:

    • Improvements to result decoding by caching reflection calls.
    • Finished implementing the Marshaler/Unmarshaler interfaces
    • Connection pool overhauled. There were a couple of issues with connections in the previous releases so this release replaces the fatih/pool package with a connection pool based on the database/sql connection pool.
    • Another change is the removal of the prefetching mechanism as the connection+cursor logic was becoming quite complex and causing bugs, hopefully this will be added back in the near future but for now I am focusing my efforts on ensuring the driver is as stable as possible #130 #137
    • Due to the above change the API for connecting has changed slightly (The API is now closer to the database/sql API. ConnectOpts changes:
      • MaxActive renamed to MaxOpen
      • IdleTimeout renamed to Timeout
    • Cursors are now only closed automatically when calling either All or One
    • Exec now takes ExecOpts instead of RunOpts. The only difference is that Exec has the NoReply field

    With that out the way here are the v1.16 changes:

    • Added Range which generates all numbers from a given range
    • Added an optional squash argument to the changes command, which lets the server combine multiple changes to the same document (defaults to true)
    • Added new admin functions (Config, Rebalance, Reconfigure, Status, Wait)
    • Added support for SUCCESS_ATOM_FEED
    • Added MinIndex + MaxIndex functions
    • Added ToJSON function
    • Updated WriteResponse type

    Since this release has a lot of changes and although I have tested these changes sometimes things fall through the gaps. If you discover any bugs please let me know and I will try to fix them as soon as possible.

    Open source →
  44. v0.5.1-0.20141102215928-16b174b489ff 02 Nov 2014 pre-release

    Nothing published for this version

  45. v0.5.0 06 Oct 2014
    Release notes
    • Added geospatial terms (Circle, Distance, Fill, Geojson, ToGeojson, GetIntersecting, GetNearest, Includes, Intersects, Line, Point, Polygon, PolygonSub)
    • Added UUID term for generating unique IDs
    • Added AtIndex term, combines Nth and GetField
    • Added the Geometry type, see the types package
    • Updated the BatchConf field in RunOpts, now uses the BatchOpts type
    • Removed support for the FieldMapper interface

    Internal Changes

    • Fixed encoding performance issues, greatly improves writes/second
    • Updated Next to zero the destination value every time it is called.
    Open source →
  46. v0.4.2 15 Sep 2014
    Release notes
    • Fixed issue causing Close to start an infinite loop
    • Tidied up connection closing logic
    Open source →
  47. v0.4.1 05 Sep 2014
    Release notes
    • Fixed bug causing Pseudotypes to not be decoded properly (#117)
    • Updated github.com/fatih/pool to v2 (#118)
    Open source →
  48. v0.4.0 31 Aug 2014
    Release notes
    • Updated the driver to support RethinkDB v1.14 (#116)
    • Added the Binary data type
    • Added the Binary command which takes a []byte or bytes.Buffer{} as an argument.
    • Added the BinaryFormat optional argument to RunOpts
    • Added the GroupFormat optional argument to RunOpts
    • Added the ArrayLimit optional argument to RunOpts
    • Renamed the ReturnVals optional argument to ReturnChanges
    • Renamed the Upsert optional argument to Conflict
    • Added the IndexRename command
    • Updated Distinct to now take the Index optional argument (using DistinctOpts)

    Internal Changes

    • Updated to use the new JSON protocol
    • Switched the connection pool code to use github.com/fatih/pool
    • Added some benchmarks
    Open source →
  49. v0.3.2 17 Aug 2014
    Release notes
    • Fixed issue causing connections not to be closed correctly (#109)
    • Fixed issue causing terms in optional arguments to be encoded incorrectly (#114)
    Open source →
  50. v0.3.1 14 Jul 2014
    Release notes
    • Fixed "Token ## not in stream cache" error (#103)
    • Changed Exec to no longer use NoReply. It now waits for the server to respond.
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive