Dendrite is a second-generation Matrix homeserver written in Go!
Find a file
Kiril Vladimiroff 59465746bc
Always defer *sql.Rows.Close and consult with Err
database/sql.Rows.Next() makes sure to call Close only after exhausting
result rows which would NOT happen when returning early from a bad Scan.
Close being idempotent makes it a great candidate to get always deferred
regardless of what happens later on the result set.

This change also makes sure call Err() after exhausting Next() and
propagate non-nil results from it as the documentation advises.

Closes #764

Signed-off-by: Kiril Vladimiroff <kiril@vladimiroff.org>
2020-02-06 11:27:24 +02:00
.github Add SyTest support to CI (#704) 2019-05-24 15:00:03 +01:00
appservice AS should use the v1 endpoint, rather than r0 (#827) 2019-12-20 14:44:34 +00:00
clientapi Always defer *sql.Rows.Close and consult with Err 2020-02-06 11:27:24 +02:00
cmd Wire up publicroomsapi for roomserver events (#851) 2020-01-24 17:11:20 +00:00
common Always defer *sql.Rows.Close and consult with Err 2020-02-06 11:27:24 +02:00
docker Implement room version capabilities in CS API (#866) 2020-02-05 18:06:39 +00:00
docs Add a Sytest blacklist file (#849) 2020-01-22 13:31:22 +00:00
federationapi Use gomatrixserverlib.Transaction instead of local type (#590) (#811) 2019-12-20 15:02:09 +00:00
federationsender Always defer *sql.Rows.Close and consult with Err 2020-02-06 11:27:24 +02:00
hooks run commit hook on what we're committing (#356) 2017-11-27 12:19:04 +00:00
mediaapi Always defer *sql.Rows.Close and consult with Err 2020-02-06 11:27:24 +02:00
publicroomsapi Always defer *sql.Rows.Close and consult with Err 2020-02-06 11:27:24 +02:00
roomserver Always defer *sql.Rows.Close and consult with Err 2020-02-06 11:27:24 +02:00
scripts Move files back if linting fails (#810) 2019-12-25 18:14:58 +00:00
syncapi Always defer *sql.Rows.Close and consult with Err 2020-02-06 11:27:24 +02:00
typingserver Lots of small typo fixes (#737) 2019-07-12 16:43:01 +01:00
.editorconfig Add .editorconfig (#179) 2017-08-05 02:25:40 +01:00
.gitignore use go module for dependencies (#594) 2019-05-21 21:56:55 +01:00
.golangci.yml Fix pipeline, emoji and syntax (#713) 2019-06-19 14:05:03 +01:00
build.sh make cmd directory path absolute in build.sh (#830) 2020-01-09 13:36:39 +00:00
CODE_STYLE.md replaced gometalinter description with golangci-lint (#837) 2019-12-25 18:28:10 +00:00
CONTRIBUTING.md Clean up CircleCI leftovers (#801) 2019-10-02 11:01:52 +08:00
dendrite-config.yaml Remove riot.im from the list of trusted ID servers in the default config (#688) 2019-01-31 10:06:11 +00:00
DESIGN.md Clean up README a bit (#289) 2017-10-10 09:33:41 +01:00
go.mod Handle kind=guest query parameter on /register (#860) 2020-01-30 11:25:57 +00:00
go.sum Store our own keys in the keydb (#853) 2020-01-25 14:12:52 +00:00
INSTALL.md Fix broken Kafka download URL in INSTALL.md (#740) 2019-07-16 16:16:43 +01:00
LICENSE Add Apache Version 2.0 license and headers to all golang files 2017-04-21 00:40:52 +02:00
README.md Clean up CircleCI leftovers (#801) 2019-10-02 11:01:52 +08:00
show-expected-fail-tests.sh Add a Sytest blacklist file (#849) 2020-01-22 13:31:22 +00:00
sytest-blacklist Implement room version capabilities in CS API (#866) 2020-02-05 18:06:39 +00:00
sytest-whitelist Implement room version capabilities in CS API (#866) 2020-02-05 18:06:39 +00:00
WIRING.md Document internal APIs and Application Services component (#499) 2018-07-06 02:33:53 -07:00

Dendrite Build Status Dendrite Dev on Matrix Dendrite on Matrix

Dendrite will be a matrix homeserver written in go.

It's still very much a work in progress, but installation instructions can be found in INSTALL.md

An overview of the design can be found in DESIGN.md

Contributing

Everyone is welcome to help out and contribute! See CONTRIBUTING.md to get started!

We aim to try and make it as easy as possible to jump in.

Discussion

For questions about Dendrite we have a dedicated room on Matrix #dendrite:matrix.org. Development discussion should happen in #dendrite-dev:matrix.org.

Progress

There's plenty still to do to make Dendrite usable! We're tracking progress in a project board.