Commit Graph

89 Commits

Author SHA1 Message Date
Namekuji
af85304578 add native calls 2023-06-02 23:48:24 -04:00
Namekuji
3af4a86254 use schema in native-utils 2023-06-02 23:48:24 -04:00
Namekuji
bc209143e6 adjust module structure 2023-06-02 23:48:23 -04:00
Namekuji
5f849e417e move files out from crate 2023-06-02 23:48:23 -04:00
Namekuji
1c34915018 fix unit test 2023-06-02 23:48:22 -04:00
Namekuji
993ece4755 add napi schema 2023-06-02 23:48:22 -04:00
Namekuji
3dd44d146f add pack_by_id 2023-06-02 23:48:22 -04:00
Namekuji
e79d34e1ed add default values 2023-06-02 23:48:21 -04:00
Namekuji
a2e6c78f09 rename feature 2023-06-02 23:48:21 -04:00
Namekuji
ed8122ea8c skip empty array 2023-06-02 23:48:21 -04:00
Namekuji
d059dc53c0 use thread to copy data 2023-06-02 23:48:20 -04:00
Namekuji
a98093bd61 use iden enum 2023-06-02 23:48:20 -04:00
Namekuji
d533734575 fix primary key specifier 2023-06-02 23:48:20 -04:00
Namekuji
239dfeec9f add migration to convert array to jsonb 2023-06-02 23:48:19 -04:00
Namekuji
099f9e042a use vec newtype 2023-06-02 23:48:19 -04:00
Namekuji
968943c7c0 make sqlite compat 2023-06-02 23:48:19 -04:00
Namekuji
128a354b83 add abstraction of string array type 2023-06-02 23:48:18 -04:00
Namekuji
516d5460f0 fix varchar array 2023-06-02 23:48:18 -04:00
Namekuji
29e914c9c3 add newtype 2023-06-02 23:48:18 -04:00
Namekuji
bc69e2df87 todo unread note check 2023-06-02 23:48:17 -04:00
Namekuji
f851bc8f40 rename test modules 2023-06-02 23:48:17 -04:00
Namekuji
4e4280e02e add tests 2023-06-02 23:48:17 -04:00
Namekuji
ba95b61b7f add integration test in model 2023-06-02 23:48:16 -04:00
Namekuji
9c832d00f9 remove mock database 2023-06-02 23:48:16 -04:00
Namekuji
a42d6e2e2d add random string generator 2023-06-02 23:48:15 -04:00
Namekuji
1601b8985c change aid to cuid2 2023-06-02 23:48:15 -04:00
Namekuji
3b6692cdf0 fix features 2023-06-02 23:48:15 -04:00
Namekuji
ab58f69c31 return mock db when mock feature is enabled 2023-06-02 23:48:14 -04:00
Namekuji
0ad9f00cac add utility crate 2023-06-02 23:48:14 -04:00
Namekuji
ea20db4694 add mock database 2023-06-02 23:48:14 -04:00
Namekuji
f50c3c906b remove unused feature 2023-06-02 23:48:13 -04:00
Namekuji
c4e41e3d32 format 2023-06-02 23:48:13 -04:00
Namekuji
36436991e2 remove unused serde 2023-06-02 23:48:13 -04:00
Namekuji
de3eb6589a add repository trait 2023-06-02 23:48:12 -04:00
Namekuji
623f796ee9 add entities and two schemas 2023-06-02 23:48:07 -04:00
ThatOneCalculator
aaa2041d38 chore: format 2023-05-29 09:31:02 -07:00
Namekuji
399b0e96dc use cuid2 with timestamp 2023-05-28 22:16:42 -04:00
Kainoa Kanter
d92cfb8cdf formatting 2023-04-06 18:56:46 -07:00
s1idewhist1e
981d3ee725 Refactor: use rust for native mastodon id conversion (#9786)
This uses [napi-rs](https://napi.rs/) to allow for automatic generation of node bindings for the native code.

I also changed the `isolatedModules` TS flag to false to allow for `static enum` to be shared across modules. It doesn't seem to be necessary for the build system that CK uses.

Currently this method does not work with ID generators with longer IDs. Likely the best solution is to add another key in the database.

Some benchmarks for 1 million conversions:

```
	node, x1_000_000: 2.847s
	rust, x1_000_000: 1.265s
```

There are still optimizations that can be made, but I think this is a good starting point and a good way to bring rust into the CK stack.

Co-authored-by: s1idewhist1e <trombonedude05@gmail.com>
Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9786
Co-authored-by: s1idewhist1e <s1idewhist1e@noreply.codeberg.org>
Co-committed-by: s1idewhist1e <s1idewhist1e@noreply.codeberg.org>
2023-03-31 01:58:28 +00:00