Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DRY known differences documentation #1181

Merged
merged 3 commits into from Sep 26, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
17 changes: 2 additions & 15 deletions README.md
Expand Up @@ -27,23 +27,10 @@ Recognizing this, FerretDB is here to fill that gap.
FerretDB will be compatible with MongoDB drivers and will strive to serve as a drop-in replacement for MongoDB 6.0+.

Currently, the project is in its early stages and welcomes all contributors.
See our [public roadmap](https://github.com/orgs/FerretDB/projects/2/views/1)
See our [public roadmap](https://github.com/orgs/FerretDB/projects/2/views/1),
a list of [known differences with MongoDB](https://docs.ferretdb.io/docs/diff/),
and [contributing guidelines](CONTRIBUTING.md).

### Known differences

1. FerretDB uses the same protocol error names and codes, but the exact error messages may be different in some cases.
2. FerretDB does not support NUL (`\0`) characters in strings.
3. Database and collection names restrictions:

* name cannot start with the reserved prefix `_ferretdb_`.
* name must not include non-latin letters, spaces, dots, dollars or dashes.
* collection name length must be less or equal than 120 symbols, database name length limit is 63 symbols.
* name must not start with a number.
* database name cannot contain capital letters.

If you encounter some other difference in behavior, please [join our community](#community) to report a problem.

## Quickstart

These steps describe a quick local setup.
Expand Down
19 changes: 12 additions & 7 deletions website/docs/diff.md
Expand Up @@ -4,11 +4,16 @@ sidebar_position: 2

# Known differences

_TODO:_ These differences need to be documented properly.
1. FerretDB uses the same protocol error names and codes, but the exact error messages may be different in some cases.
2. FerretDB does not support NUL (`\0`) characters in strings.
3. Database and collection names restrictions:
* name cannot start with the reserved prefix `_ferretdb_`;
* name must not include non-latin letters, spaces, dots, dollars or dashes;
* collection name length must be less or equal than 120 symbols, database name length limit is 63 symbols;
* name must not start with a number;
* database name cannot contain capital letters.
4. For Tigris, FerretDB requires Tigris schema validation for `msg_create`: validator must be set as `$tigrisSchemaString`.
The value must be a JSON string representing JSON schema in [Tigris format](https://docs.tigrisdata.com/overview/schema).

## Tigris

### Validator

FerretDB requires Tigris schema validation for `msg_create`: validator must be set as `$tigrisSchemaString`.
The value must be a JSON string representing JSON schema in [Tigris format](https://docs.tigrisdata.com/overview/schema).
If you encounter some other difference in behavior,
AlekSi marked this conversation as resolved.
Show resolved Hide resolved
please [join our community](https://github.com/FerretDB/FerretDB#community) to report a problem.
21 changes: 3 additions & 18 deletions website/docs/intro.md
Expand Up @@ -21,27 +21,12 @@ With FerretDB, users can run the same MongoDB protocol queries without needing t
## Scope and current state

FerretDB is compatible with MongoDB drivers and can be used as a direct replacement for MongoDB 6.0+.

Currently, the project is still in its early stages of development and not yet suitable for use in production-ready environments.
See our [public roadmap](https://github.com/orgs/FerretDB/projects/2/views/1)
See our [public roadmap](https://github.com/orgs/FerretDB/projects/2/views/1),
a list of [known differences with MongoDB](/docs/diff/),
and [contributing guidelines](https://github.com/FerretDB/FerretDB/blob/main/CONTRIBUTING.md).

## Known differences

1. FerretDB uses the same protocol error names and codes, but the exact error messages may be different in some cases.
2. FerretDB does not support NULL (\0) characters in strings.
3. For Tigris, FerretDB requires Tigris schema validation for `msg_create`: validator must be set as `$tigrisSchemaString`.
The value must be a JSON string representing JSON schema in [Tigris format](https://docs.tigrisdata.com/overview/schema).

4. Database and collection names restrictions:

* name cannot start with the reserved prefix `_ferretdb_`.
* name must not include non-latin letters, spaces, dots, dollars or dashes.
* collection name length must be less or equal than 120 symbols, database name length limit is 63 symbols.
* name must not start with a number.
* database name cannot contain capital letters.

If you encounter some other difference in behavior, please [join our community](https://github.com/FerretDB/FerretDB#community) to report the problem.

## Community

* Website and blog: [https://ferretdb.io](https://ferretdb.io/).
Expand Down