From 0438bc1cf1677957b675e5416c064deb345575ee Mon Sep 17 00:00:00 2001 From: antifallobst Date: Sun, 31 Mar 2024 12:13:56 +0200 Subject: [PATCH] refactor: moved server code into a seperate directory --- .gitignore | 3 +- Cargo.lock | 162 +++++++++--------- Cargo.toml | 31 +--- README.md | 6 + client/Cargo.toml | 6 + client/src/lib.rs | 14 ++ server/Cargo.toml | 28 +++ .../rust-toolchain.toml | 0 rustfmt.toml => server/rustfmt.toml | 0 .../src}/api/endpoints/account/invite.rs | 0 .../src}/api/endpoints/account/mod.rs | 0 {src => server/src}/api/endpoints/mod.rs | 0 .../src}/api/endpoints/relay/mod.rs | 0 .../src}/api/endpoints/relay/relay_id/mod.rs | 0 .../api/endpoints/relay/relay_id/user/mod.rs | 0 .../endpoints/relay/relay_id/user/user_id.rs | 0 {src => server/src}/api/mod.rs | 0 {src => server/src}/backend/db_structures.rs | 0 {src => server/src}/backend/error.rs | 0 {src => server/src}/backend/mod.rs | 0 {src => server/src}/backend/permissions.rs | 0 {src => server/src}/backend/relay/manager.rs | 0 {src => server/src}/backend/relay/mod.rs | 0 {src => server/src}/backend/relay/user.rs | 0 {src => server/src}/backend/tokens.rs | 0 {src => server/src}/backend/user.rs | 0 {src => server/src}/config.rs | 0 {src => server/src}/main.rs | 0 28 files changed, 142 insertions(+), 108 deletions(-) create mode 100644 client/Cargo.toml create mode 100644 client/src/lib.rs create mode 100644 server/Cargo.toml rename rust-toolchain.toml => server/rust-toolchain.toml (100%) rename rustfmt.toml => server/rustfmt.toml (100%) rename {src => server/src}/api/endpoints/account/invite.rs (100%) rename {src => server/src}/api/endpoints/account/mod.rs (100%) rename {src => server/src}/api/endpoints/mod.rs (100%) rename {src => server/src}/api/endpoints/relay/mod.rs (100%) rename {src => server/src}/api/endpoints/relay/relay_id/mod.rs (100%) rename {src => server/src}/api/endpoints/relay/relay_id/user/mod.rs (100%) rename {src => server/src}/api/endpoints/relay/relay_id/user/user_id.rs (100%) rename {src => server/src}/api/mod.rs (100%) rename {src => server/src}/backend/db_structures.rs (100%) rename {src => server/src}/backend/error.rs (100%) rename {src => server/src}/backend/mod.rs (100%) rename {src => server/src}/backend/permissions.rs (100%) rename {src => server/src}/backend/relay/manager.rs (100%) rename {src => server/src}/backend/relay/mod.rs (100%) rename {src => server/src}/backend/relay/user.rs (100%) rename {src => server/src}/backend/tokens.rs (100%) rename {src => server/src}/backend/user.rs (100%) rename {src => server/src}/config.rs (100%) rename {src => server/src}/main.rs (100%) diff --git a/.gitignore b/.gitignore index 2a0038a..cd54618 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /target -.idea \ No newline at end of file +.idea +*/.env \ No newline at end of file diff --git a/Cargo.lock b/Cargo.lock index c28cee2..3e8c51e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8,7 +8,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f7b0a21988c1bf877cf4759ef5ddaac04c1c9fe808c9142ecb78ba97d97a28a" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.5.0", "bytes", "futures-core", "futures-sink", @@ -31,7 +31,7 @@ dependencies = [ "actix-utils", "ahash", "base64 0.21.7", - "bitflags 2.4.2", + "bitflags 2.5.0", "brotli", "bytes", "bytestring", @@ -65,7 +65,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e01ed3140b2f8d422c68afa1ed2e85d996ea619c988ac834d255db32138655cb" dependencies = [ "quote", - "syn 2.0.53", + "syn 2.0.57", ] [[package]] @@ -178,7 +178,7 @@ dependencies = [ "actix-router", "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.57", ] [[package]] @@ -226,9 +226,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.1.2" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" dependencies = [ "memchr", ] @@ -346,15 +346,15 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" [[package]] name = "backtrace" -version = "0.3.69" +version = "0.3.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" dependencies = [ "addr2line", "cc", @@ -401,9 +401,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.4.2" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" +checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" dependencies = [ "serde", ] @@ -449,9 +449,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.15.3" +version = "3.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ea184aa71bb362a1157c896979544cc23974e08fd265f29ea96b59f0b4a555b" +checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa" [[package]] name = "byteorder" @@ -461,9 +461,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.5.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" +checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9" [[package]] name = "bytestring" @@ -492,9 +492,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.35" +version = "0.4.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eaf5903dcbc0a39312feb77df2ff4c76387d591b9fc7b04a238dcf8bb62639a" +checksum = "8a0d04d43504c61aa6c7531f1871dd0d418d91130162063b789da00fd7057a5e" dependencies = [ "android-tzdata", "iana-time-zone", @@ -745,9 +745,9 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] name = "fastrand" -version = "2.0.1" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" +checksum = "658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984" [[package]] name = "finl_unicode" @@ -1037,6 +1037,10 @@ dependencies = [ "cc", ] +[[package]] +name = "icrc-client" +version = "0.1.0" + [[package]] name = "icrc-server" version = "0.1.0" @@ -1072,9 +1076,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.5" +version = "2.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4" +checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" dependencies = [ "equivalent", "hashbrown", @@ -1091,9 +1095,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] name = "jobserver" @@ -1106,9 +1110,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.68" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" dependencies = [ "wasm-bindgen", ] @@ -1202,9 +1206,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.1" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" +checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" [[package]] name = "mime" @@ -1341,7 +1345,7 @@ version = "0.10.64" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.5.0", "cfg-if", "foreign-types", "libc", @@ -1358,7 +1362,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.57", ] [[package]] @@ -1369,9 +1373,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-sys" -version = "0.9.101" +version = "0.9.102" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dda2b0f344e78efc2facf7d195d098df0dd72151b26ab98da807afc26c198dff" +checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2" dependencies = [ "cc", "libc", @@ -1436,9 +1440,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pin-project-lite" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" [[package]] name = "pin-utils" @@ -1544,9 +1548,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.10.3" +version = "1.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15" +checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" dependencies = [ "aho-corasick", "memchr", @@ -1567,9 +1571,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" +checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" [[package]] name = "rsa" @@ -1608,11 +1612,11 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.31" +version = "0.38.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949" +checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89" dependencies = [ - "bitflags 2.4.2", + "bitflags 2.5.0", "errno", "libc", "linux-raw-sys", @@ -1642,9 +1646,9 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "security-framework" -version = "2.9.2" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" +checksum = "770452e37cad93e0a50d5abc3990d2bc351c36d0328f86cefec2f2fb206eaef6" dependencies = [ "bitflags 1.3.2", "core-foundation", @@ -1655,9 +1659,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.9.1" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" +checksum = "41f3cc463c0ef97e11c3461a9d3787412d30e8e7eb907c79180c4a57bf7c04ef" dependencies = [ "core-foundation-sys", "libc", @@ -1686,14 +1690,14 @@ checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.57", ] [[package]] name = "serde_json" -version = "1.0.114" +version = "1.0.115" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" +checksum = "12dc5c46daa8e9fdf4f5e71b6cf9a53f2487da0e86e55808e2d35539666497dd" dependencies = [ "itoa", "ryu", @@ -1764,9 +1768,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.13.1" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "socket2" @@ -1915,7 +1919,7 @@ checksum = "1ed31390216d20e538e447a7a9b959e06ed9fc51c37b514b46eb758016ecd418" dependencies = [ "atoi", "base64 0.21.7", - "bitflags 2.4.2", + "bitflags 2.5.0", "byteorder", "bytes", "chrono", @@ -1958,7 +1962,7 @@ checksum = "7c824eb80b894f926f89a0b9da0c7f435d27cdd35b8c655b114e58223918577e" dependencies = [ "atoi", "base64 0.21.7", - "bitflags 2.4.2", + "bitflags 2.5.0", "byteorder", "chrono", "crc", @@ -2043,9 +2047,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.53" +version = "2.0.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7383cd0e49fff4b6b90ca5670bfd3e9d6a733b3f90c686605aa7eec8c4996032" +checksum = "11a6ae1e52eb25aab8f3fb9fca13be982a373b8f1157ca14b897a825ba4a2d35" dependencies = [ "proc-macro2", "quote", @@ -2081,7 +2085,7 @@ checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.57", ] [[package]] @@ -2132,9 +2136,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.36.0" +version = "1.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931" +checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787" dependencies = [ "backtrace", "bytes", @@ -2149,9 +2153,9 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.14" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" +checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" dependencies = [ "futures-core", "pin-project-lite", @@ -2192,7 +2196,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.57", ] [[package]] @@ -2301,9 +2305,9 @@ checksum = "b8dad83b4f25e74f184f64c43b150b91efe7647395b42289f38e50566d82855b" [[package]] name = "wasm-bindgen" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -2311,24 +2315,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.57", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2336,22 +2340,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.57", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.91" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" [[package]] name = "whoami" @@ -2521,7 +2525,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.57", ] [[package]] @@ -2532,27 +2536,27 @@ checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" [[package]] name = "zstd" -version = "0.13.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bffb3309596d527cfcba7dfc6ed6052f1d39dfbd7c867aa2e865e4a449c10110" +checksum = "2d789b1514203a1120ad2429eae43a7bd32b90976a7bb8a05f7ec02fa88cc23a" dependencies = [ "zstd-safe", ] [[package]] name = "zstd-safe" -version = "7.0.0" +version = "7.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43747c7422e2924c11144d5229878b98180ef8b06cca4ab5af37afc8a8d8ea3e" +checksum = "1cd99b45c6bc03a018c8b8a86025678c87e55526064e38f9df301989dce7ec0a" dependencies = [ "zstd-sys", ] [[package]] name = "zstd-sys" -version = "2.0.9+zstd.1.5.5" +version = "2.0.10+zstd.1.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e16efa8a874a0481a574084d34cc26fdb3b99627480f785888deb6386506656" +checksum = "c253a4914af5bafc8fa8c86ee400827e83cf6ec01195ec1f1ed8441bf00d65aa" dependencies = [ "cc", "pkg-config", diff --git a/Cargo.toml b/Cargo.toml index 3c7e86e..c561a1b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,28 +1,3 @@ -[package] -name = "icrc-server" -version = "0.1.0" -edition = "2021" -authors = ["antifallobst"] -license = "MIT" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] -anyhow = "1.0.81" -argon2 = "0.5.3" -base64 = "0.22.0" -base64-serde = "0.7.0" -chrono = "0.4.35" -compile-time-run = "0.2.12" -dotenvy = "0.15.7" -env_logger = "0.11.3" -log = "0.4.21" -rand = "0.8.5" -serde = { version = "1.0.197", features = ["default"] } -thiserror = "1.0.58" -uuid = { version = "1.7.0", features = ["v4"] } -tokio = { version = "1.36.0", features = ["sync"] } - -actix-web = "4.5.1" -actix-web-httpauth = "0.8.1" -sqlx = { version = "0.7.4", features = ["runtime-tokio", "tls-native-tls", "mysql", "chrono"] } +[workspace] +members = ["server", "client"] +resolver = "2" \ No newline at end of file diff --git a/README.md b/README.md index ac25505..d09a4b3 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,12 @@ ICRC is at the moment work in progress and not functional yet. [Contribution](https://git.nerdcult.net/antifallobst/icrc-server/src/branch/master/docs/contribution_guide.md) is very welcome :) +## Directory Structure + +- `server` - the reference implementation of the icrc server. +- `client` - a rust crate that abstracts the icrc server API. +- `docs` - contains purple unicorns, vibing to workers songs. + ## Documentation Shortcuts to different documentation parts: diff --git a/client/Cargo.toml b/client/Cargo.toml new file mode 100644 index 0000000..2ca6feb --- /dev/null +++ b/client/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "icrc-client" +version = "0.1.0" +edition = "2021" + +[dependencies] diff --git a/client/src/lib.rs b/client/src/lib.rs new file mode 100644 index 0000000..7d12d9a --- /dev/null +++ b/client/src/lib.rs @@ -0,0 +1,14 @@ +pub fn add(left: usize, right: usize) -> usize { + left + right +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn it_works() { + let result = add(2, 2); + assert_eq!(result, 4); + } +} diff --git a/server/Cargo.toml b/server/Cargo.toml new file mode 100644 index 0000000..3c7e86e --- /dev/null +++ b/server/Cargo.toml @@ -0,0 +1,28 @@ +[package] +name = "icrc-server" +version = "0.1.0" +edition = "2021" +authors = ["antifallobst"] +license = "MIT" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +anyhow = "1.0.81" +argon2 = "0.5.3" +base64 = "0.22.0" +base64-serde = "0.7.0" +chrono = "0.4.35" +compile-time-run = "0.2.12" +dotenvy = "0.15.7" +env_logger = "0.11.3" +log = "0.4.21" +rand = "0.8.5" +serde = { version = "1.0.197", features = ["default"] } +thiserror = "1.0.58" +uuid = { version = "1.7.0", features = ["v4"] } +tokio = { version = "1.36.0", features = ["sync"] } + +actix-web = "4.5.1" +actix-web-httpauth = "0.8.1" +sqlx = { version = "0.7.4", features = ["runtime-tokio", "tls-native-tls", "mysql", "chrono"] } diff --git a/rust-toolchain.toml b/server/rust-toolchain.toml similarity index 100% rename from rust-toolchain.toml rename to server/rust-toolchain.toml diff --git a/rustfmt.toml b/server/rustfmt.toml similarity index 100% rename from rustfmt.toml rename to server/rustfmt.toml diff --git a/src/api/endpoints/account/invite.rs b/server/src/api/endpoints/account/invite.rs similarity index 100% rename from src/api/endpoints/account/invite.rs rename to server/src/api/endpoints/account/invite.rs diff --git a/src/api/endpoints/account/mod.rs b/server/src/api/endpoints/account/mod.rs similarity index 100% rename from src/api/endpoints/account/mod.rs rename to server/src/api/endpoints/account/mod.rs diff --git a/src/api/endpoints/mod.rs b/server/src/api/endpoints/mod.rs similarity index 100% rename from src/api/endpoints/mod.rs rename to server/src/api/endpoints/mod.rs diff --git a/src/api/endpoints/relay/mod.rs b/server/src/api/endpoints/relay/mod.rs similarity index 100% rename from src/api/endpoints/relay/mod.rs rename to server/src/api/endpoints/relay/mod.rs diff --git a/src/api/endpoints/relay/relay_id/mod.rs b/server/src/api/endpoints/relay/relay_id/mod.rs similarity index 100% rename from src/api/endpoints/relay/relay_id/mod.rs rename to server/src/api/endpoints/relay/relay_id/mod.rs diff --git a/src/api/endpoints/relay/relay_id/user/mod.rs b/server/src/api/endpoints/relay/relay_id/user/mod.rs similarity index 100% rename from src/api/endpoints/relay/relay_id/user/mod.rs rename to server/src/api/endpoints/relay/relay_id/user/mod.rs diff --git a/src/api/endpoints/relay/relay_id/user/user_id.rs b/server/src/api/endpoints/relay/relay_id/user/user_id.rs similarity index 100% rename from src/api/endpoints/relay/relay_id/user/user_id.rs rename to server/src/api/endpoints/relay/relay_id/user/user_id.rs diff --git a/src/api/mod.rs b/server/src/api/mod.rs similarity index 100% rename from src/api/mod.rs rename to server/src/api/mod.rs diff --git a/src/backend/db_structures.rs b/server/src/backend/db_structures.rs similarity index 100% rename from src/backend/db_structures.rs rename to server/src/backend/db_structures.rs diff --git a/src/backend/error.rs b/server/src/backend/error.rs similarity index 100% rename from src/backend/error.rs rename to server/src/backend/error.rs diff --git a/src/backend/mod.rs b/server/src/backend/mod.rs similarity index 100% rename from src/backend/mod.rs rename to server/src/backend/mod.rs diff --git a/src/backend/permissions.rs b/server/src/backend/permissions.rs similarity index 100% rename from src/backend/permissions.rs rename to server/src/backend/permissions.rs diff --git a/src/backend/relay/manager.rs b/server/src/backend/relay/manager.rs similarity index 100% rename from src/backend/relay/manager.rs rename to server/src/backend/relay/manager.rs diff --git a/src/backend/relay/mod.rs b/server/src/backend/relay/mod.rs similarity index 100% rename from src/backend/relay/mod.rs rename to server/src/backend/relay/mod.rs diff --git a/src/backend/relay/user.rs b/server/src/backend/relay/user.rs similarity index 100% rename from src/backend/relay/user.rs rename to server/src/backend/relay/user.rs diff --git a/src/backend/tokens.rs b/server/src/backend/tokens.rs similarity index 100% rename from src/backend/tokens.rs rename to server/src/backend/tokens.rs diff --git a/src/backend/user.rs b/server/src/backend/user.rs similarity index 100% rename from src/backend/user.rs rename to server/src/backend/user.rs diff --git a/src/config.rs b/server/src/config.rs similarity index 100% rename from src/config.rs rename to server/src/config.rs diff --git a/src/main.rs b/server/src/main.rs similarity index 100% rename from src/main.rs rename to server/src/main.rs