diff --git a/.gitignore b/.gitignore index a92cb04ec7dac6c059e0ee192ba2d92c306e2298..1be7b79db84792e88eb385c94360f515c636620f 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,6 @@ builds **/.DS_Store *.orig *.cap - +*.db +*.db-shm +*.db-wal diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a1e59eaf0d2568539e94ada92aafdad473d0a9bf..7c462e2c3409cc5482802b5d7faf0f57667f2e10 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,106 +1,120 @@ -stages: - - build variables: - BUILD_VERSION: '$CI_COMMIT_BRANCH-$CI_COMMIT_SHA' - OUTPUT_MSVC: 'win32-msvc-${CI_COMMIT_BRANCH}-${CI_COMMIT_SHA}' - OUTPUT_GNU: 'win32-gnu-${CI_COMMIT_BRANCH}-${CI_COMMIT_SHA}' - CARGO_HOME: $CI_PROJECT_DIR/.cargo + BUILD_VERSION: ${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHORT_SHA} + FULL_VERSION: ${CI_PROJECT_NAME}-${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHORT_SHA} + CARGO_HOME: ${CI_PROJECT_DIR}/.cargo_build + GIT_DEPTH: "20" + APT_CACHE: ${CI_PROJECT_DIR}/.apt_cache # Setup a cache to cache job parts between jobs to ensure faster builds cache: - key: "$CI_JOB_NAME" + key: "${CI_JOB_NAME}" #untracked: true paths: + - $CARGO_HOME/.crates.toml + - $CARGO_HOME/.crates2.json - $CARGO_HOME/bin/ - $CARGO_HOME/registry/index/ - $CARGO_HOME/registry/cache/ - $CARGO_HOME/git/db/ + - ${APT_CACHE} + - target -latest-windows-msvc: +before_script: + # Don't check this in enabled because it prints all of the values to the log and is accessible to anyone. + #- env + - mkdir -p ${APT_CACHE} + +stages: + - build + +latest-windows-cross-compile: + image: rust:latest stage: build tags: - linux script: - echo $CARGO_HOME - - apt-get update -qq && apt-get install -y -qq clang llvm + - apt-get update -qq && apt-get -o dir::cache::archives="${APT_CACHE}" install -y -qq clang llvm - rustup target add x86_64-pc-windows-msvc - cargo install cargo-xwin - - ./build_scripts/win32/build_resources.sh - - ./build_scripts/win32/build_executable_msvc.sh - - echo $CI_PROJECT_NAME-$BUILD_VERSION >> builds/win32/version.txt - - mkdir -p $OUTPUT_MSVC - - cp -rf builds/win32 $OUTPUT_MSVC + - cargo install sqlx-cli + - ./build_scripts/win64/build_all.sh + - echo ${FULL_VERSION} >> builds/win64/version.txt + - mkdir -p win64-${FULL_VERSION} + - cp -rf builds/win64 win64-${FULL_VERSION} artifacts: - name: $OUTPUT_MSVC + name: win64-${FULL_VERSION} expire_in: never paths: - - $OUTPUT_MSVC + - win64-${FULL_VERSION} latest-macos-arm64: - stage: build image: rust:latest + stage: build tags: - macos script: + - cargo install sqlx-cli - ./build_scripts/macos/build_resources.sh - ./build_scripts/macos/build_executable_arm64.sh - ./build_scripts/macos/sign_and_notarize.sh - - mkdir $CI_PROJECT_NAME-$BUILD_VERSION-macos - - echo $CI_PROJECT_NAME-$BUILD_VERSION >> ./builds/macos/dist/version.txt - - cp -rf ./builds/macos/dist $CI_PROJECT_NAME-$BUILD_VERSION-macos + - echo ${FULL_VERSION} >> ./builds/macos/version.txt + - mkdir -p macos-${FULL_VERSION} + - ditto -c -k --keepParent ./builds/macos/ macos-${FULL_VERSION}/VulkanApp.zip artifacts: - name: ${CI_PROJECT_NAME}-${BUILD_VERSION}-macos + name: macos-${FULL_VERSION} expire_in: never paths: - - ${CI_PROJECT_NAME}-${BUILD_VERSION}-macos + - macos-${FULL_VERSION} latest-macos-x86-64: - stage: build image: rust:latest + stage: build tags: - macos script: + - cargo install sqlx-cli - ./build_scripts/macos/build_resources.sh - ./build_scripts/macos/build_executable_x86_64.sh - ./build_scripts/macos/sign_and_notarize.sh - - mkdir -p $CI_PROJECT_NAME-$BUILD_VERSION-macos - - echo $CI_PROJECT_NAME-$BUILD_VERSION >> ./builds/macos/dist/version.txt - - cp -rf ./builds/macos/dist $CI_PROJECT_NAME-$BUILD_VERSION-macos + - echo ${FULL_VERSION} >> ./builds/macos/version.txt + - mkdir -p macos-${FULL_VERSION} + - ditto -c -k --keepParent ./builds/macos/ macos-${FULL_VERSION}/VulkanApp.zip artifacts: - name: ${CI_PROJECT_NAME}-${BUILD_VERSION}-macos + name: macos-${FULL_VERSION} expire_in: never paths: - - ${CI_PROJECT_NAME}-${BUILD_VERSION}-macos + - macos-${FULL_VERSION} latest-linux: - stage: build image: rust:latest + stage: build tags: - linux script: + - cargo install sqlx-cli - ./build_scripts/linux/build_all.sh - - echo $CI_PROJECT_NAME-$BUILD_VERSION >> builds/linux/version.txt - - mkdir -p $CI_PROJECT_NAME-$BUILD_VERSION-linux - - cp -rf builds/linux $CI_PROJECT_NAME-$BUILD_VERSION-linux + - echo "${FULL_VERSION}" >> builds/linux/version.txt + - mkdir -p linux-${FULL_VERSION} + - cp -rf builds/linux linux-${FULL_VERSION} artifacts: - name: ${CI_PROJECT_NAME}-${BUILD_VERSION}-linux + name: linux-${FULL_VERSION} expire_in: never paths: - - ${CI_PROJECT_NAME}-${BUILD_VERSION}-linux + - linux-${FULL_VERSION} -rust-nightly-windows-msvc: +rust-nightly-windows-cross-compile: stage: build image: rustlang/rust:nightly tags: - linux script: - - echo $CARGO_HOME - - apt-get update -qq && apt-get install -y -qq clang llvm + - apt-get update -qq && apt-get -o dir::cache::archives="${APT_CACHE}" install -y -qq clang llvm - rustup target add x86_64-pc-windows-msvc - cargo install cargo-xwin - - ./build_scripts/win32/build_resources.sh - - ./build_scripts/win32/build_executable_msvc.sh + - cargo install sqlx-cli + - ./build_scripts/win64/build_all.sh allow_failure: true rust-nightly-linux: @@ -109,6 +123,7 @@ rust-nightly-linux: tags: - linux script: + - cargo install sqlx-cli - ./build_scripts/linux/build_all.sh allow_failure: true @@ -118,6 +133,7 @@ rust-nightly-macos: tags: - macos script: + - cargo install sqlx-cli - ./build_scripts/macos/build_all.sh allow_failure: true diff --git a/Cargo.lock b/Cargo.lock index 2322f4642e9e375634ad7dfb30548de7add54dc4..762ac8c3074dec00bea71a2e76794645587f7ebc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -26,6 +26,17 @@ version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e8fd72866655d1904d6b0997d0b07ba561047d070fbe29de039031c641b61217" +[[package]] +name = "ahash" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" +dependencies = [ + "getrandom", + "once_cell", + "version_check", +] + [[package]] name = "aho-corasick" version = "0.7.18" @@ -77,6 +88,26 @@ dependencies = [ "raw-window-metal", ] +[[package]] +name = "async-trait" +version = "0.1.53" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed6aa3524a2dfcf9fe180c51eae2b58738348d819517ceadf95789c51fff7600" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "atoi" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "616896e05fc0e2649463a93a15183c6a16bf03413a7af88ef1285ddedfa9cda5" +dependencies = [ + "num-traits", +] + [[package]] name = "atty" version = "0.2.14" @@ -94,6 +125,50 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +[[package]] +name = "axum" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9f346c92c1e9a71d14fe4aaf7c2a5d9932cc4e5e48d8fb6641524416eb79ddd" +dependencies = [ + "async-trait", + "axum-core", + "bitflags", + "bytes", + "futures-util", + "http", + "http-body", + "hyper", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper", + "tokio", + "tower", + "tower-http", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbcda393bef9c87572779cb8ef916f12d77750b27535dd6819fa86591627a51" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http", + "http-body", + "mime", +] + [[package]] name = "bit_field" version = "0.10.1" @@ -112,6 +187,15 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" +[[package]] +name = "block-buffer" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf7fe51849ea569fd452f37822f606a5cabb684dc918707a0193fd4664ff324" +dependencies = [ + "generic-array", +] + [[package]] name = "bstr" version = "0.2.17" @@ -142,6 +226,12 @@ version = "1.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" +[[package]] +name = "bytes" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8" + [[package]] name = "calloop" version = "0.6.5" @@ -186,6 +276,20 @@ version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75476fe966a8af7c0ceae2a3e514afa87d4451741fcdfab8bfaa07ad301842ec" +[[package]] +name = "chrono" +version = "0.4.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73" +dependencies = [ + "libc", + "num-integer", + "num-traits", + "serde", + "time", + "winapi", +] + [[package]] name = "cocoa" version = "0.24.0" @@ -223,6 +327,18 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" +[[package]] +name = "common" +version = "0.1.0" +dependencies = [ + "chrono", + "rand", + "serde", + "serde_json", + "sqlx", + "uuid 1.1.0", +] + [[package]] name = "core-foundation" version = "0.7.0" @@ -305,6 +421,30 @@ dependencies = [ "objc", ] +[[package]] +name = "cpufeatures" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59a6001667ab124aebae2a495118e11d30984c3a653e99d86d58971708cf5e4b" +dependencies = [ + "libc", +] + +[[package]] +name = "crc" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49fc9a695bca7f35f5f4c15cddc84415f66a74ea78eef08e90c5024f2b540e23" +dependencies = [ + "crc-catalog", +] + +[[package]] +name = "crc-catalog" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccaeedb56da03b09f598226e25e80088cb4cd25f316e6e4df7d695f0feeb1403" + [[package]] name = "crc32fast" version = "1.3.2" @@ -383,6 +523,16 @@ dependencies = [ "lazy_static", ] +[[package]] +name = "crypto-common" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57952ca27b5e3606ff4dd79b0020231aaf9d6aa76dc05fd30137538c50bd3ce8" +dependencies = [ + "generic-array", + "typenum", +] + [[package]] name = "csv" version = "1.1.6" @@ -464,6 +614,16 @@ dependencies = [ "adler32", ] +[[package]] +name = "digest" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2fb860ca6fafa5552fb6d0e816a69c8e49f0908bf524e30a90d97c85892d506" +dependencies = [ + "block-buffer", + "crypto-common", +] + [[package]] name = "dirs" version = "4.0.0" @@ -508,6 +668,12 @@ dependencies = [ "libloading 0.7.3", ] +[[package]] +name = "dotenv" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f" + [[package]] name = "downcast-rs" version = "1.2.0" @@ -533,6 +699,12 @@ dependencies = [ "termcolor", ] +[[package]] +name = "event-listener" +version = "2.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77f3309417938f28bf8228fcff79a4a37103981e3e186d2ccd19c74b38f4eb71" + [[package]] name = "exr" version = "1.4.2" @@ -550,14 +722,33 @@ dependencies = [ ] [[package]] -name = "flate2" -version = "1.0.23" +name = "fastrand" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf" +dependencies = [ + "instant", +] + +[[package]] +name = "filetime" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b39522e96686d38f4bc984b9198e3a0613264abaebaff2c5c918bfa6b6da09af" +checksum = "c0408e2626025178a6a7f7ffc05a25bc47103229f19c113755de7bf63816290c" dependencies = [ "cfg-if 1.0.0", - "crc32fast", "libc", + "redox_syscall", + "winapi", +] + +[[package]] +name = "flate2" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6" +dependencies = [ + "crc32fast", "miniz_oxide", ] @@ -586,7 +777,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3203e88e086474e56b0785255804a0c23542f76253584d3f43152cd2bb95d0b7" dependencies = [ - "hashbrown", + "hashbrown 0.8.2", "ttf-parser 0.8.3", ] @@ -605,18 +796,90 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" +[[package]] +name = "form_urlencoded" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191" +dependencies = [ + "matches", + "percent-encoding", +] + +[[package]] +name = "futures-channel" +version = "0.3.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010" +dependencies = [ + "futures-core", + "futures-sink", +] + [[package]] name = "futures-core" version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3" +[[package]] +name = "futures-executor" +version = "0.3.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9420b90cfa29e327d0429f19be13e7ddb68fa1cccb09d65e5706b8c7a749b8a6" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-intrusive" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62007592ac46aa7c2b6416f7deb9a8a8f63a01e0f1d6e1787d5630170db2b63e" +dependencies = [ + "futures-core", + "lock_api", + "parking_lot 0.11.2", +] + [[package]] name = "futures-sink" version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "21163e139fa306126e6eedaf49ecdb4588f939600f0b1e770f4205ee4b7fa868" +[[package]] +name = "futures-task" +version = "0.3.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a" + +[[package]] +name = "futures-util" +version = "0.3.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a" +dependencies = [ + "futures-core", + "futures-sink", + "futures-task", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "generic-array" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd48d33ec7f05fbfa152300fdad764757cbded343c1aa1cff2fbaf4134851803" +dependencies = [ + "typenum", + "version_check", +] + [[package]] name = "getrandom" version = "0.2.6" @@ -626,7 +889,7 @@ dependencies = [ "cfg-if 1.0.0", "js-sys", "libc", - "wasi", + "wasi 0.10.0+wasi-snapshot-preview1", "wasm-bindgen", ] @@ -652,10 +915,37 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e91b62f79061a0bc2e046024cb7ba44b08419ed238ecbd9adbd787434b9e8c25" dependencies = [ - "ahash", + "ahash 0.3.8", "autocfg", ] +[[package]] +name = "hashbrown" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" +dependencies = [ + "ahash 0.7.6", +] + +[[package]] +name = "hashlink" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7249a3129cbc1ffccd74857f81464a323a152173cdb134e0fd81bc803b29facf" +dependencies = [ + "hashbrown 0.11.2", +] + +[[package]] +name = "heck" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" +dependencies = [ + "unicode-segmentation", +] + [[package]] name = "hermit-abi" version = "0.1.19" @@ -665,18 +955,107 @@ dependencies = [ "libc", ] +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "home" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2456aef2e6b6a9784192ae780c0f15bc57df0e918585282325e8c8ac27737654" +dependencies = [ + "winapi", +] + +[[package]] +name = "http" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff8670570af52249509a86f5e3e18a08c60b177071826898fde8997cf5f6bfbb" +dependencies = [ + "bytes", + "fnv", + "itoa 1.0.2", +] + +[[package]] +name = "http-body" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" +dependencies = [ + "bytes", + "http", + "pin-project-lite", +] + +[[package]] +name = "http-range-header" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bfe8eed0a9285ef776bb792479ea3834e8b94e13d615c2f66d03dd50a435a29" + +[[package]] +name = "httparse" +version = "1.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "496ce29bb5a52785b44e0f7ca2847ae0bb839c9bd28f69acac9b99d461c0c04c" + +[[package]] +name = "httpdate" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" + [[package]] name = "humantime" version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" +[[package]] +name = "hyper" +version = "0.14.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42dc3c131584288d375f2d07f822b0cb012d8c6fb899a5b9fdb3cb7eb9b6004f" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "http", + "http-body", + "httparse", + "httpdate", + "itoa 1.0.2", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", + "want", +] + [[package]] name = "ident_case" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" +[[package]] +name = "idna" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" +dependencies = [ + "matches", + "unicode-bidi", + "unicode-normalization", +] + [[package]] name = "image" version = "0.24.2" @@ -705,7 +1084,7 @@ checksum = "e6a33933d4645d6db1bfa55ff75e13ef301644d4c001cfaec6fe3afcfb05b82c" dependencies = [ "bitflags", "imgui-sys", - "parking_lot", + "parking_lot 0.11.2", ] [[package]] @@ -728,6 +1107,16 @@ dependencies = [ "winit", ] +[[package]] +name = "indexmap" +version = "1.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6012d540c5baa3589337a98ce73408de9b5a25ec9fc2c6fd6be8f0d39e0ca5a" +dependencies = [ + "autocfg", + "hashbrown 0.11.2", +] + [[package]] name = "inflate" version = "0.4.5" @@ -746,6 +1135,15 @@ dependencies = [ "cfg-if 1.0.0", ] +[[package]] +name = "itertools" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "0.4.8" @@ -754,9 +1152,15 @@ checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" [[package]] name = "itoa" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d" + +[[package]] +name = "itoap" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35" +checksum = "9028f49264629065d057f340a86acb84867925865f73bbf8d47b4d149a7e88b8" [[package]] name = "jni-sys" @@ -796,9 +1200,9 @@ checksum = "7efd1d698db0759e6ef11a7cd44407407399a910c774dd804c64c032da7826ff" [[package]] name = "libc" -version = "0.2.125" +version = "0.2.126" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5916d2ae698f6de9bfb891ad7a8d65c09d232dc58cc4ac433c7da3b2fd84bc2b" +checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836" [[package]] name = "libloading" @@ -820,6 +1224,17 @@ dependencies = [ "winapi", ] +[[package]] +name = "libsqlite3-sys" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "898745e570c7d0453cc1fbc4a701eb6c662ed54e8fec8b7d14be137ebeeb9d14" +dependencies = [ + "cc", + "pkg-config", + "vcpkg", +] + [[package]] name = "lock_api" version = "0.4.7" @@ -855,7 +1270,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" [[package]] -name = "memchr" +name = "matchit" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9376a4f0340565ad675d11fc1419227faf5f60cd7ac9cb2e7185a471f30af833" + +[[package]] +name = "memchr" version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" @@ -878,6 +1299,12 @@ dependencies = [ "autocfg", ] +[[package]] +name = "mime" +version = "0.3.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" + [[package]] name = "minimal-lexical" version = "0.2.1" @@ -906,6 +1333,18 @@ dependencies = [ "winapi", ] +[[package]] +name = "mio" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "713d550d9b44d89174e066b7a6217ae06234c10cb47819a88290d2b353c31799" +dependencies = [ + "libc", + "log", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys", +] + [[package]] name = "mio-misc" version = "1.2.2" @@ -915,7 +1354,7 @@ dependencies = [ "crossbeam", "crossbeam-queue", "log", - "mio", + "mio 0.7.14", ] [[package]] @@ -936,6 +1375,24 @@ dependencies = [ "getrandom", ] +[[package]] +name = "native-tls" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd7e2f3618557f980e0b17e8856252eee3c97fa12c54dff0ca290fb6266ca4a9" +dependencies = [ + "lazy_static", + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + [[package]] name = "ndk" version = "0.3.0" @@ -1107,9 +1564,54 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.10.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f3e037eac156d1775da914196f0f37741a274155e34a0b7e427c35d2a2ecb9" +checksum = "7709cef83f0c1f58f666e746a08b21e0085f7440fa6a29cc194d68aac97a4225" + +[[package]] +name = "openssl" +version = "0.10.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb81a6430ac911acb25fe5ac8f1d2af1b4ea8a4fdfda0f1ee4292af2e2d8eb0e" +dependencies = [ + "bitflags", + "cfg-if 1.0.0", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "openssl-sys" +version = "0.9.73" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d5fd19fb3e0a8191c1e34935718976a3e70c112ab9a24af6d7cadccd9d90bc0" +dependencies = [ + "autocfg", + "cc", + "libc", + "pkg-config", + "vcpkg", +] [[package]] name = "owned_ttf_parser" @@ -1128,7 +1630,17 @@ checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" dependencies = [ "instant", "lock_api", - "parking_lot_core", + "parking_lot_core 0.8.5", +] + +[[package]] +name = "parking_lot" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87f5ec2493a61ac0506c0f4199f99070cbe83857b0337006a30f3e6719b8ef58" +dependencies = [ + "lock_api", + "parking_lot_core 0.9.3", ] [[package]] @@ -1145,6 +1657,25 @@ dependencies = [ "winapi", ] +[[package]] +name = "parking_lot_core" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "redox_syscall", + "smallvec", + "windows-sys", +] + +[[package]] +name = "paste" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c520e05135d6e763148b6426a837e239041653ba7becd2e538c076c738025fc" + [[package]] name = "percent-encoding" version = "2.1.0" @@ -1171,6 +1702,18 @@ dependencies = [ "syn", ] +[[package]] +name = "pin-project-lite" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + [[package]] name = "pkg-config" version = "0.3.25" @@ -1189,6 +1732,12 @@ dependencies = [ "miniz_oxide", ] +[[package]] +name = "ppv-lite86" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" + [[package]] name = "proc-macro-crate" version = "0.1.5" @@ -1210,9 +1759,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.38" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9027b48e9d4c9175fa2218adf3557f91c1137021739951d4932f5f8268ac48aa" +checksum = "c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029" dependencies = [ "unicode-xid", ] @@ -1226,6 +1775,36 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" +dependencies = [ + "getrandom", +] + [[package]] name = "raw-window-handle" version = "0.3.4" @@ -1303,9 +1882,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.5.5" +version = "1.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a11647b6b25ff05a515cb92c365cec08801e83423a235b51e231e1808747286" +checksum = "d83f127d94bdbcda4c8cc2e50f6f84f4b611f69c902699ca385a39c3a75f9ff1" dependencies = [ "aho-corasick", "memchr", @@ -1320,9 +1899,18 @@ checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" [[package]] name = "regex-syntax" -version = "0.6.25" +version = "0.6.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b" +checksum = "49b3de9ec5dc0a3417da371aab17d729997c15010e7fd24ff707773a33bddb64" + +[[package]] +name = "remove_dir_all" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" +dependencies = [ + "winapi", +] [[package]] name = "rusttype" @@ -1336,9 +1924,47 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.9" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695" + +[[package]] +name = "sailfish" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "948a7edfc2f03d7c58a097dda25ed29440a72e8528894a6e182fe9171195fed1" +dependencies = [ + "itoap", + "ryu", + "sailfish-macros", + "version_check", +] + +[[package]] +name = "sailfish-compiler" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f0a01133d6ce146020e6416ac6a823f813f1cbb30ff77548b4fa20749524947" +dependencies = [ + "filetime", + "home", + "memchr", + "proc-macro2", + "quote", + "serde", + "syn", + "toml", +] + +[[package]] +name = "sailfish-macros" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f" +checksum = "86326c1f1dce0b316e0a47071f683b185417dc64e1a704380b5c706b09e871b1" +dependencies = [ + "proc-macro2", + "sailfish-compiler", +] [[package]] name = "same-file" @@ -1349,6 +1975,16 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "schannel" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88d6731146462ea25d9244b2ed5fd1d716d25c52e4d54aa4fb0f3c4e9854dbe2" +dependencies = [ + "lazy_static", + "windows-sys", +] + [[package]] name = "scoped-tls" version = "1.0.0" @@ -1367,6 +2003,29 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" +[[package]] +name = "security-framework" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dc14f172faf8a0194a3aded622712b0de276821addc574fa54fc0a1167e10dc" +dependencies = [ + "bitflags", + "core-foundation 0.9.3", + "core-foundation-sys 0.8.3", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0160a13a177a45bfb43ce71c01580998474f556ad854dcbca936dd2841a5c556" +dependencies = [ + "core-foundation-sys 0.8.3", + "libc", +] + [[package]] name = "serde" version = "1.0.137" @@ -1393,11 +2052,49 @@ version = "1.0.81" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b7ce2b32a1aed03c558dc61a5cd328f15aff2dbc17daad8fb8af04d2100e15c" dependencies = [ - "itoa 1.0.1", + "itoa 1.0.2", + "ryu", + "serde", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa 1.0.2", "ryu", "serde", ] +[[package]] +name = "sha2" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55deaec60f81eefe3cce0dc50bda92d6d8e88f2a27df7c5033b42afeb1ed2676" +dependencies = [ + "cfg-if 1.0.0", + "cpufeatures", + "digest", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0" +dependencies = [ + "libc", +] + +[[package]] +name = "slab" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb703cfe953bccee95685111adeedb76fabe4e97549a58d16f03ea7b9367bb32" + [[package]] name = "smallvec" version = "1.8.0" @@ -1423,6 +2120,16 @@ dependencies = [ "wayland-protocols", ] +[[package]] +name = "socket2" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0" +dependencies = [ + "libc", + "winapi", +] + [[package]] name = "spin" version = "0.9.3" @@ -1432,6 +2139,112 @@ dependencies = [ "lock_api", ] +[[package]] +name = "sqlformat" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4b7922be017ee70900be125523f38bdd644f4f06a1b16e8fa5a8ee8c34bffd4" +dependencies = [ + "itertools", + "nom", + "unicode_categories", +] + +[[package]] +name = "sqlx" +version = "0.5.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "551873805652ba0d912fec5bbb0f8b4cdd96baf8e2ebf5970e5671092966019b" +dependencies = [ + "sqlx-core", + "sqlx-macros", +] + +[[package]] +name = "sqlx-core" +version = "0.5.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e48c61941ccf5ddcada342cd59e3e5173b007c509e1e8e990dafc830294d9dc5" +dependencies = [ + "ahash 0.7.6", + "atoi", + "bitflags", + "byteorder", + "bytes", + "chrono", + "crc", + "crossbeam-queue", + "either", + "event-listener", + "flume", + "futures-channel", + "futures-core", + "futures-executor", + "futures-intrusive", + "futures-util", + "hashlink", + "hex", + "indexmap", + "itoa 1.0.2", + "libc", + "libsqlite3-sys", + "log", + "memchr", + "once_cell", + "paste", + "percent-encoding", + "sha2", + "smallvec", + "sqlformat", + "sqlx-rt", + "stringprep", + "thiserror", + "tokio-stream", + "url", + "uuid 0.8.2", +] + +[[package]] +name = "sqlx-macros" +version = "0.5.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc0fba2b0cae21fc00fe6046f8baa4c7fcb49e379f0f592b04696607f69ed2e1" +dependencies = [ + "dotenv", + "either", + "heck", + "once_cell", + "proc-macro2", + "quote", + "sha2", + "sqlx-core", + "sqlx-rt", + "syn", + "url", +] + +[[package]] +name = "sqlx-rt" +version = "0.5.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4db708cd3e459078f85f39f96a00960bd841f66ee2a669e90bf36907f5a79aae" +dependencies = [ + "native-tls", + "once_cell", + "tokio", + "tokio-native-tls", +] + +[[package]] +name = "stringprep" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ee348cb74b87454fff4b551cbf727025810a004f88aeacae7f85b87f4e9a1c1" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + [[package]] name = "strsim" version = "0.9.3" @@ -1449,6 +2262,26 @@ dependencies = [ "unicode-xid", ] +[[package]] +name = "sync_wrapper" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20518fe4a4c9acf048008599e464deb21beeae3d3578418951a189c235a7a9a8" + +[[package]] +name = "tempfile" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" +dependencies = [ + "cfg-if 1.0.0", + "fastrand", + "libc", + "redox_syscall", + "remove_dir_all", + "winapi", +] + [[package]] name = "termcolor" version = "1.1.3" @@ -1498,6 +2331,97 @@ dependencies = [ "weezl", ] +[[package]] +name = "time" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255" +dependencies = [ + "libc", + "wasi 0.10.0+wasi-snapshot-preview1", + "winapi", +] + +[[package]] +name = "tinyvec" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" + +[[package]] +name = "tokio" +version = "1.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4903bf0427cf68dddd5aa6a93220756f8be0c34fcfa9f5e6191e103e15a31395" +dependencies = [ + "bytes", + "libc", + "memchr", + "mio 0.8.3", + "num_cpus", + "once_cell", + "parking_lot 0.12.0", + "pin-project-lite", + "signal-hook-registry", + "socket2", + "tokio-macros", + "winapi", +] + +[[package]] +name = "tokio-macros" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b557f72f448c511a979e2564e55d74e6c4432fc96ff4f6241bc6bded342643b7" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tokio-native-tls" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7d995660bd2b7f8c1568414c1126076c13fbb725c40112dc0120b78eb9b717b" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-stream" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50145484efff8818b5ccd256697f36863f587da82cf8b409c53adf1e840798e3" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f988a1a1adc2fb21f9c12aa96441da33a1728193ae0b95d2be22dbd17fcb4e5c" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", +] + [[package]] name = "toml" version = "0.5.9" @@ -1507,6 +2431,81 @@ dependencies = [ "serde", ] +[[package]] +name = "tower" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a89fd63ad6adf737582df5db40d286574513c69a11dac5214dc3b5603d6713e" +dependencies = [ + "futures-core", + "futures-util", + "pin-project", + "pin-project-lite", + "tokio", + "tokio-util", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-http" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aba3f3efabf7fb41fae8534fc20a817013dd1c12cb45441efb6c82e6556b4cd8" +dependencies = [ + "bitflags", + "bytes", + "futures-core", + "futures-util", + "http", + "http-body", + "http-range-header", + "pin-project-lite", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-layer" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "343bc9466d3fe6b0f960ef45960509f84480bf4fd96f92901afe7ff3df9d3a62" + +[[package]] +name = "tower-service" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" + +[[package]] +name = "tracing" +version = "0.1.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d0ecdcb44a79f0fe9844f0c4f33a342cbcbb5117de8001e6ba0dc2351327d09" +dependencies = [ + "cfg-if 1.0.0", + "log", + "pin-project-lite", + "tracing-core", +] + +[[package]] +name = "tracing-core" +version = "0.1.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f54c8ca710e81886d498c2fd3331b56c93aa248d49de2222ad2742247c60072f" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "try-lock" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" + [[package]] name = "ttf-parser" version = "0.6.2" @@ -1519,12 +2518,85 @@ version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7622061403fd00f0820df288e5a580e87d3ce15a1c4313c59fd1ffb77129903f" +[[package]] +name = "typenum" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" + +[[package]] +name = "unicode-bidi" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" + +[[package]] +name = "unicode-normalization" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-segmentation" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e8820f5d777f6224dc4be3632222971ac30164d4a258d595640799554ebfd99" + [[package]] name = "unicode-xid" version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "957e51f3646910546462e67d5f7599b9e4fb8acdd304b087a6494730f9eebf04" +[[package]] +name = "unicode_categories" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e" + +[[package]] +name = "url" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c" +dependencies = [ + "form_urlencoded", + "idna", + "matches", + "percent-encoding", +] + +[[package]] +name = "uuid" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" + +[[package]] +name = "uuid" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93bbc61e655a4833cf400d0d15bf3649313422fa7572886ad6dab16d79886365" +dependencies = [ + "getrandom", + "serde", +] + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + [[package]] name = "vulkan_app" version = "0.1.0" @@ -1532,6 +2604,7 @@ dependencies = [ "ash", "ash-window", "cgmath", + "common", "core-foundation 0.9.3", "csv", "data-url", @@ -1559,11 +2632,27 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "want" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" +dependencies = [ + "log", + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.10.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" + [[package]] name = "wasi" -version = "0.10.2+wasi-snapshot-preview1" +version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" @@ -1692,6 +2781,23 @@ dependencies = [ "pkg-config", ] +[[package]] +name = "web_server" +version = "0.1.0" +dependencies = [ + "axum", + "chrono", + "common", + "dotenv", + "rand", + "sailfish", + "serde", + "serde_json", + "sqlx", + "tokio", + "uuid 1.1.0", +] + [[package]] name = "weezl" version = "0.1.6" @@ -1729,6 +2835,49 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "windows-sys" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" +dependencies = [ + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_msvc" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" + +[[package]] +name = "windows_i686_gnu" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" + +[[package]] +name = "windows_i686_msvc" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" + [[package]] name = "winit" version = "0.25.0" @@ -1745,13 +2894,13 @@ dependencies = [ "lazy_static", "libc", "log", - "mio", + "mio 0.7.14", "mio-misc", "ndk", "ndk-glue", "ndk-sys", "objc", - "parking_lot", + "parking_lot 0.11.2", "percent-encoding", "raw-window-handle 0.3.4", "scopeguard", diff --git a/Cargo.toml b/Cargo.toml index 53c78e5b7c4791cfb5164d7729dd8395d9b3e802..14161d7764872702156ad42b3e60801f083b0589 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,43 +1,10 @@ -[package] -name = "vulkan_app" -version = "0.1.0" -authors = ["Scott Johnson <zeropointtwo@gmail.com>"] -edition = "2018" -description = "An in progress game" +[workspace] -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html -#[profile.release] -#debug = false - -[dependencies] -log = "0.4.17" -env_logger = "0.9.0" -winit = "0.25.0" -ash = "0.37.0" -ash-window = "0.10.0" -image = "0.24.2" -cgmath = "0.18.0" -rayon = "1.5.2" - -# Fonts -fontdue = "0.4.0" -csv = "1.1.6" -serde = { version = "1.0.137", features = ["derive"]} -serde_json = "1.0.81" -toml = "0.5.9" - -# IMGui -imgui = "0.8.2" -imgui-winit-support = "0.8.2" - -data-url = "0.1.1" - -[target.'cfg(target_os="macos")'.dependencies] -core-foundation = "0.9.3" - -[target.'cfg(target_os="windows")'.dependencies] -#winapi = "0.3.9" +members = [ + "common", + "game", + "web_server", +] [profile.dev.package."*"] opt-level = 3 - diff --git a/build_all.bat b/build_all.bat deleted file mode 100755 index 07080940cd75c3f3050219b8e37f7dda4732e05e..0000000000000000000000000000000000000000 --- a/build_all.bat +++ /dev/null @@ -1,10 +0,0 @@ -@echo off - -set script_path_trailing_slash=%~dp0 -set script_path=%script_path_trailing_slash:~0,-1% - -echo %script_path% -cd %script_path% - -call build_scripts\win32\build_all.bat - diff --git a/build_all.sh b/build_all.sh deleted file mode 100755 index f7c47bf2814e6ee922850b0e3d76ae239c16bd89..0000000000000000000000000000000000000000 --- a/build_all.sh +++ /dev/null @@ -1,14 +0,0 @@ - -#!/usr/bin/env bash -cd "$(dirname "$0")" - -echo Compiling resources... -./build_scripts/linux/build_resources.sh -./build_scripts/win32/build_resources.sh - -echo Compiling Linux executable... -./build_scripts/linux/build_executable.sh -./build_scripts/win32/build_executable.sh - -echo Done - diff --git a/build_scripts/linux/build_executable.sh b/build_scripts/linux/build_executable.sh index 15592054b6e207f4183824050e7332e467fcb12b..14e509773aafde866ea0aaf5bd08418a6b101119 100755 --- a/build_scripts/linux/build_executable.sh +++ b/build_scripts/linux/build_executable.sh @@ -5,15 +5,32 @@ cd "$(dirname "$0")" export PLATFORM=linux -BIN_DIR=../../builds/${PLATFORM} -TARGET_DIR=../../target/release +BIN_DIR=../../builds/${PLATFORM}/game +TARGET_TYPE=x86_64-unknown-linux-gnu +TARGET_DIR=../../target/${TARGET_TYPE}/release EXE_NAME=vulkan_app +DB_NAME=test.db +DB_DIR=../../web_server/data +DB_URL_BUILD_SCRIPTS=sqlite://${DB_DIR}/${DB_NAME} +DB_URL_WORKSPACE=sqlite://web_server/data/${DB_NAME} +MIGRATIONS_SRC=../../web_server/migrations +WEB_SERVER_EXE_NAME=web_server +WEB_SERVER_DST=../../builds/${PLATFORM}/web_server + # Make sure target directories exist mkdir -p ${BIN_DIR} +mkdir -p ${DB_DIR} echo Building ${PLATFORM}... -cargo build --release -vv -cp ${TARGET_DIR}/${EXE_NAME} ${BIN_DIR} +# This command has to reference the db url and migrations relative to the build script directory +cargo sqlx database setup --database-url ${DB_URL_BUILD_SCRIPTS} --source ${MIGRATIONS_SRC} + +# This command has to be run relative to the root of the whole workspace :/ +export DATABASE_URL=${DB_URL_WORKSPACE} +cargo build --release --target ${TARGET_TYPE} + +cp ${TARGET_DIR}/${EXE_NAME} ${BIN_DIR} +cp ${TARGET_DIR}/${WEB_SERVER_EXE_NAME} ${WEB_SERVER_DST} diff --git a/build_scripts/linux/build_resources.sh b/build_scripts/linux/build_resources.sh index 3f80adffd8e6258359f294d0955e2b660a21d3e3..9e5f8e4c542c2d7e2cae8b11abec83a9d6fd2288 100755 --- a/build_scripts/linux/build_resources.sh +++ b/build_scripts/linux/build_resources.sh @@ -4,19 +4,30 @@ set -e cd "$(dirname "$0")" PLATFORM=linux -BIN_DIR=../../builds/${PLATFORM} -RESOURCES_DIR=../../resources -TOOLS_DIR=../../tools -SHADER_COMPILER=${TOOLS_DIR}/${PLATFORM}/glslangValidator/bin/glslangValidator +BIN_DIR=../../builds/${PLATFORM}/game +RESOURCES_DIR=../../game/resources +EXTERNALS_DIR=../../external/${PLATFORM} +SHADER_COMPILER=${EXTERNALS_DIR}/glslangValidator/bin/glslangValidator SHADER_SRC_DIR=${RESOURCES_DIR}/shaders SHADER_DST_DIR=${BIN_DIR}/shaders +WEB_SERVER_BIN_DST=../../builds/${PLATFORM}/web_server +WEB_SERVER_TEMPLATES_DST=${WEB_SERVER_BIN_DST}/templates +WEB_SERVER_MIGRATIONS_DST=${WEB_SERVER_BIN_DST}/migrations + +WEB_SERVER_RESOURCES_SRC_ROOT=../../web_server +WEB_SERVER_TEMPLATES_SRC=${WEB_SERVER_RESOURCES_SRC_ROOT}/templates +WEB_SERVER_MIGRATIONS_SRC=${WEB_SERVER_RESOURCES_SRC_ROOT}/migrations + + # Make sure target directories exist mkdir -p ${BIN_DIR}/shaders mkdir -p ${BIN_DIR}/images mkdir -p ${BIN_DIR}/models mkdir -p ${BIN_DIR}/fonts mkdir -p ${BIN_DIR}/sprites +mkdir -p ${WEB_SERVER_TEMPLATES_DST} +mkdir -p ${WEB_SERVER_MIGRATIONS_DST} # Compile shaders ${SHADER_COMPILER} -V ${SHADER_SRC_DIR}/sprite.vert -o ${SHADER_DST_DIR}/sprite.vert.spv @@ -43,3 +54,5 @@ cp -rf ${RESOURCES_DIR}/models ${BIN_DIR} cp -rf ${RESOURCES_DIR}/fonts ${BIN_DIR} cp -rf ${RESOURCES_DIR}/sprites ${BIN_DIR} +cp -rf ${WEB_SERVER_TEMPLATES_SRC} ${WEB_SERVER_TEMPLATES_DST} +cp -rf ${WEB_SERVER_MIGRATIONS_SRC} ${WEB_SERVER_MIGRATIONS_DST} diff --git a/build_scripts/macos/build_all.sh b/build_scripts/macos/build_all.sh index 4c92781cc01d99eb78d692faf9695ee1e1f08d9e..798dd4fea77e8ee9a6ac4d6b2e59a9ad3a765629 100755 --- a/build_scripts/macos/build_all.sh +++ b/build_scripts/macos/build_all.sh @@ -1,5 +1,6 @@ - #!/usr/bin/env bash +set -e + cd "$(dirname "$0")" rm -rf ../../builds/macos @@ -12,4 +13,3 @@ echo Compiling Linux executable... ./build_executable_arm64.sh echo Done - diff --git a/build_scripts/macos/build_executable_arm64.sh b/build_scripts/macos/build_executable_arm64.sh index 01a947781f04c2c485ca83b906fe3f426c1a372b..3dc39589679fd773ac9c794f1bc6b1968da3c918 100755 --- a/build_scripts/macos/build_executable_arm64.sh +++ b/build_scripts/macos/build_executable_arm64.sh @@ -10,22 +10,35 @@ BUILD_TARGET_ARM=aarch64-apple-darwin BIN_DIR=../../builds/${PLATFORM} TARGET_DIR=../../target/${BUILD_TARGET_ARM}/release EXE_NAME=vulkan_app + +DB_NAME=test.db +DB_DIR=../../web_server/data +DB_URL_BUILD_SCRIPTS=sqlite://${DB_DIR}/${DB_NAME} +DB_URL_WORKSPACE=sqlite://web_server/data/${DB_NAME} +MIGRATIONS_SRC=../../web_server/migrations +WEB_SERVER_EXE_NAME=web_server +WEB_SERVER_DST=../../builds/${PLATFORM}/web_server + APP_NAME=VulkanApp -APP_BUNDLE_ROOT=${BIN_DIR}/${APP_NAME}.app/Contents +APP_BUNDLE_ROOT=${BIN_DIR}/game/${APP_NAME}.app/Contents APP_BUNDLE_EXE_PATH=${APP_BUNDLE_ROOT}/MacOS # Make sure target directories exist mkdir -p ${APP_BUNDLE_EXE_PATH} +mkdir -p ${DB_DIR} + +# This command has to reference the db url and migrations relative to the build script directory +cargo sqlx database setup --database-url ${DB_URL_BUILD_SCRIPTS} --source ${MIGRATIONS_SRC} -pushd "../.." +# This command has to be run relative to the root of the whole workspace :/ +export DATABASE_URL=${DB_URL_WORKSPACE} echo Building ${PLATFORM}... cargo build --release --target ${BUILD_TARGET_ARM} -popd - install_name_tool -add_rpath @executable_path/../Frameworks ${TARGET_DIR}/${EXE_NAME} cp -r ${TARGET_DIR}/${EXE_NAME} ${APP_BUNDLE_EXE_PATH}/${EXE_NAME} +cp ${TARGET_DIR}/${WEB_SERVER_EXE_NAME} ${WEB_SERVER_DST} popd diff --git a/build_scripts/macos/build_executable_x86_64.sh b/build_scripts/macos/build_executable_x86_64.sh index 719441759ea2f598f59569f1e7aa732ebf5bc642..d253ce1417d4ac1d4f3018873b7bf66fe3bd5feb 100755 --- a/build_scripts/macos/build_executable_x86_64.sh +++ b/build_scripts/macos/build_executable_x86_64.sh @@ -11,22 +11,35 @@ BUILD_TARGET_X86=x86_64-apple-darwin BIN_DIR=../../builds/${PLATFORM} TARGET_DIR=../../target/${BUILD_TARGET_X86}/release EXE_NAME=vulkan_app + +DB_NAME=test.db +DB_DIR=../../web_server/data +DB_URL_BUILD_SCRIPTS=sqlite://${DB_DIR}/${DB_NAME} +DB_URL_WORKSPACE=sqlite://web_server/data/${DB_NAME} +MIGRATIONS_SRC=../../web_server/migrations +WEB_SERVER_EXE_NAME=web_server +WEB_SERVER_DST=../../builds/${PLATFORM}/web_server + APP_NAME=VulkanApp -APP_BUNDLE_ROOT=${BIN_DIR}/${APP_NAME}.app/Contents +APP_BUNDLE_ROOT=${BIN_DIR}/game/${APP_NAME}.app/Contents APP_BUNDLE_EXE_PATH=${APP_BUNDLE_ROOT}/MacOS # Make sure target directories exist mkdir -p ${BIN_DIR} +mkdir -p ${DB_DIR} + +# This command has to reference the db url and migrations relative to the build script directory +cargo sqlx database setup --database-url ${DB_URL_BUILD_SCRIPTS} --source ${MIGRATIONS_SRC} -pushd "../.." +# This command has to be run relative to the root of the whole workspace :/ +export DATABASE_URL=${DB_URL_WORKSPACE} echo Building ${PLATFORM}... cargo build --release --target ${BUILD_TARGET_X86} -popd - install_name_tool -add_rpath @executable_path/../Frameworks ${TARGET_DIR}/${EXE_NAME} cp -r ${TARGET_DIR}/${EXE_NAME} ${APP_BUNDLE_EXE_PATH}/${EXE_NAME} +cp ${TARGET_DIR}/${WEB_SERVER_EXE_NAME} ${WEB_SERVER_DST} popd diff --git a/build_scripts/macos/build_resources.sh b/build_scripts/macos/build_resources.sh index e88a5ede8075f8ea8fdd6f0e3e1cd15dfc9b0163..801078e1026eabd997e38bd5a7cb0bce5e74acb4 100755 --- a/build_scripts/macos/build_resources.sh +++ b/build_scripts/macos/build_resources.sh @@ -7,10 +7,21 @@ APP_NAME=VulkanApp EXE_NAME=vulkan_app PLATFORM=macos BIN_DIR=../../builds/${PLATFORM} -RESOURCES_DIR=../../resources -TOOLS_DIR=../../tools -SHADER_COMPILER=${TOOLS_DIR}/${PLATFORM}/glslangValidator/bin/glslangValidator +GAME_BIN_DIR=${BIN_DIR}/game +RESOURCES_DIR=../../game/resources +EXTERNALS_DIR=../../external/${PLATFORM} +SHADER_COMPILER=${EXTERNALS_DIR}/glslangValidator/bin/glslangValidator SHADER_SRC_DIR=${RESOURCES_DIR}/shaders +MOLTEN_VK_ROOT=../../external/macos/moltenvk +VULKAN_DLL_VERSION=1.3.211 + +WEB_SERVER_BIN_DST=../../builds/${PLATFORM}/web_server +WEB_SERVER_TEMPLATES_DST=${WEB_SERVER_BIN_DST}/templates +WEB_SERVER_MIGRATIONS_DST=${WEB_SERVER_BIN_DST}/migrations + +WEB_SERVER_RESOURCES_SRC_ROOT=../../web_server +WEB_SERVER_TEMPLATES_SRC=${WEB_SERVER_RESOURCES_SRC_ROOT}/templates +WEB_SERVER_MIGRATIONS_SRC=${WEB_SERVER_RESOURCES_SRC_ROOT}/migrations # Mac bundle layout # vulkan_app.app @@ -25,7 +36,7 @@ SHADER_SRC_DIR=${RESOURCES_DIR}/shaders # - models # - Info.plist -APP_BUNDLE_ROOT=${BIN_DIR}/${APP_NAME}.app/Contents +APP_BUNDLE_ROOT=${GAME_BIN_DIR}/${APP_NAME}.app/Contents APP_BUNDLE_EXE_PATH=${APP_BUNDLE_ROOT}/MacOS APP_BUNDLE_RESOURCES_PATH=${APP_BUNDLE_ROOT}/Resources APP_BUNDLE_SHADERS_PATH=${APP_BUNDLE_RESOURCES_PATH}/shaders @@ -33,7 +44,7 @@ APP_BUNDLE_FRAMEWORKS_PATH=${APP_BUNDLE_ROOT}/Frameworks APP_BUNDLE_MVK_ICD_PATH=${APP_BUNDLE_RESOURCES_PATH}/vulkan/icd.d # Delete the existing app bundle. They get code signed and hashed when launched so they can't be updated. -rm -rf ${BIN_DIR}/${APP_NAME}.app +rm -rf ${BIN_DIR} # Make sure target directories exist mkdir -p ${APP_BUNDLE_EXE_PATH} @@ -44,6 +55,8 @@ mkdir -p ${APP_BUNDLE_RESOURCES_PATH}/images mkdir -p ${APP_BUNDLE_RESOURCES_PATH}/models mkdir -p ${APP_BUNDLE_RESOURCES_PATH}/fonts mkdir -p ${APP_BUNDLE_RESOURCES_PATH}/sprites +mkdir -p ${WEB_SERVER_TEMPLATES_DST} +mkdir -p ${WEB_SERVER_MIGRATIONS_DST} # Compile shaders ${SHADER_COMPILER} -V ${SHADER_SRC_DIR}/sprite.vert -o ${APP_BUNDLE_SHADERS_PATH}/sprite.vert.spv @@ -70,19 +83,17 @@ cp -rf ${RESOURCES_DIR}/models ${APP_BUNDLE_RESOURCES_PATH} cp -rf ${RESOURCES_DIR}/fonts ${APP_BUNDLE_RESOURCES_PATH} cp -rf ${RESOURCES_DIR}/sprites ${APP_BUNDLE_RESOURCES_PATH} -VULKAN_DLL_VERSION=1.3.211 -VULKAN_SDK_ROOT=~/VulkanSDK/1.3.211.0 +cp -rf ${WEB_SERVER_TEMPLATES_SRC} ${WEB_SERVER_TEMPLATES_DST} +cp -rf ${WEB_SERVER_MIGRATIONS_SRC} ${WEB_SERVER_MIGRATIONS_DST} -cp ${VULKAN_SDK_ROOT}/macOS/lib/libMoltenVK.dylib ${APP_BUNDLE_FRAMEWORKS_PATH} -cp ${VULKAN_SDK_ROOT}/macOS/lib/libvulkan.${VULKAN_DLL_VERSION}.dylib ${APP_BUNDLE_FRAMEWORKS_PATH} -#install_name_tool -add_rpath @executable_path/../Frameworks ${APP_BUNDLE_FRAMEWORKS_PATH}/libvulkan.${VULKAN_DLL_VERSION}.dylib +cp -rf ${MOLTEN_VK_ROOT}/lib/* ${APP_BUNDLE_FRAMEWORKS_PATH} pushd ${APP_BUNDLE_FRAMEWORKS_PATH} ln -s libvulkan.${VULKAN_DLL_VERSION}.dylib libvulkan.dylib ln -s libvulkan.${VULKAN_DLL_VERSION}.dylib libvulkan.1.dylib popd -#cp -r ${VULKAN_SDK_ROOT}/macOS/share/vulkan ${APP_BUNDLE_ROOT}/Resources -cp MoltenVK_icd.json ${APP_BUNDLE_MVK_ICD_PATH} + +cp ${MOLTEN_VK_ROOT}/MoltenVK_icd.json ${APP_BUNDLE_MVK_ICD_PATH} cat > ${APP_BUNDLE_ROOT}/Info.plist <<EOF diff --git a/build_scripts/macos/sign_and_notarize.sh b/build_scripts/macos/sign_and_notarize.sh index f9dfc8b4bda32d0237f00243982fe4d713179f8c..4fd77dd314bb22c8df9393ae3a5b9f4d725b28fa 100755 --- a/build_scripts/macos/sign_and_notarize.sh +++ b/build_scripts/macos/sign_and_notarize.sh @@ -3,9 +3,9 @@ set -e pushd "$(dirname "$0")" -export PLATFORM=macos +PLATFORM=macos -BIN_DIR=../../builds/${PLATFORM} +BIN_DIR=../../builds/${PLATFORM}/game EXE_NAME=vulkan_app APP_NAME=VulkanApp APP_BUNDLE_ROOT=${BIN_DIR}/${APP_NAME}.app @@ -14,16 +14,16 @@ XCNOTARY=/opt/homebrew/bin/xcnotary # Make sure target directories exist mkdir -p ${APP_BUNDLE_EXE_PATH} -mkdir -p ${BIN_DIR}/dist +#mkdir -p ${BIN_DIR}/dist #codesign --force --options runtime --entitlements ./hardened_runtime_entitlements.plist -s "Rising Tide Games LLC" --verbose=4 ${APP_BUNDLE_ROOT}/Frameworks/libMoltenVK.dylib #codesign --force --options runtime --entitlements ./hardened_runtime_entitlements.plist -s "Rising Tide Games LLC" --verbose=4 ${APP_BUNDLE_ROOT}/Frameworks/libvulkan.1.3.204.dylib #codesign --force --options runtime --entitlements ./hardened_runtime_entitlements.plist -s "Rising Tide Games LLC" --verbose=4 ${APP_BUNDLE_ROOT}/Frameworks/libvulkan.dylib codesign --force --options runtime --entitlements ./hardened_runtime_entitlements.plist -s "Rising Tide Games LLC" --verbose=4 ${APP_BUNDLE_EXE_PATH}/${EXE_NAME} ${XCNOTARY} notarize ${APP_BUNDLE_ROOT} --developer-account zeropointtwo@gmail.com --developer-password-keychain-item NOTARY_KEY +#${XCNOTARY} precheck ${APP_BUNDLE_ROOT} --developer-account zeropointtwo@gmail.com --developer-password-keychain-item NOTARY_KEY #rm -rf ${BIN_DIR}/${APP_NAME}.app #unzip -o $TMPDIR/${APP_NAME} -d ${BIN_DIR} -ditto -c -k --keepParent ${APP_BUNDLE_ROOT} ${BIN_DIR}/dist/${APP_NAME}.zip +#ditto -c -k --keepParent ${APP_BUNDLE_ROOT} ${BIN_DIR}/${APP_NAME}.zip popd - diff --git a/build_scripts/win32/build_executable_gnu.bat b/build_scripts/win32/build_executable_gnu.bat deleted file mode 100755 index ab6d376744404464f97a3f5ad14a9cc7676b3470..0000000000000000000000000000000000000000 --- a/build_scripts/win32/build_executable_gnu.bat +++ /dev/null @@ -1,22 +0,0 @@ -@echo off - -set script_path_trailing_slash=%~dp0 -set script_path=%script_path_trailing_slash:~0,-1% - -echo %script_path% -pushd %script_path% - -set TARGET=x86_64-pc-windows-gnu -set TARGET_DIR=..\..\target\%TARGET%\release - -rem Common settings -set BIN_DIR=..\..\builds\win32 - -rem Make sure target directories exist -mkdir %BIN_DIR% - -cargo build --release --target %TARGET% -vv - -copy %TARGET_DIR%\vulkan_app.exe %BIN_DIR%\vulkan_app_gnu.exe - -popd diff --git a/build_scripts/win32/build_executable_msvc.sh b/build_scripts/win32/build_executable_msvc.sh deleted file mode 100755 index 424402393cc8c745dabf87d73d2f3cda8821012c..0000000000000000000000000000000000000000 --- a/build_scripts/win32/build_executable_msvc.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash -set -e - -cd "$(dirname "$0")" - -# Platform specific settings -export PLATFORM=win32 - -EXE_EXTENSION=.exe -BUILD_TARGET=x86_64-pc-windows-msvc -TARGET_DIR=../../target/${BUILD_TARGET}/release - -# Common settings -BIN_DIR=../../builds/${PLATFORM} -EXE_NAME=vulkan_app${EXE_EXTENSION} - -# Make sure target directories exist -mkdir -p ${BIN_DIR} - -echo Building ${PLATFORM}... -cargo xwin build --release --target ${BUILD_TARGET} - -cp ${TARGET_DIR}/${EXE_NAME} ${BIN_DIR}/${EXE_NAME} - diff --git a/build_scripts/win32/build_all.bat b/build_scripts/win64/build_all.bat similarity index 100% rename from build_scripts/win32/build_all.bat rename to build_scripts/win64/build_all.bat diff --git a/build_scripts/win32/build_all.sh b/build_scripts/win64/build_all.sh similarity index 78% rename from build_scripts/win32/build_all.sh rename to build_scripts/win64/build_all.sh index 918988d2f1d85cf717db75671ba272873c35e360..d53de29a090b1f64e7ca8e654a320f423cef1efa 100755 --- a/build_scripts/win32/build_all.sh +++ b/build_scripts/win64/build_all.sh @@ -6,7 +6,7 @@ cd "$(dirname "$0")" echo Compiling resources... ./build_resources.sh -echo Compiling Linux executable... +echo Compiling Windows executable... ./build_executable.sh echo Done diff --git a/build_scripts/win32/build_executable_msvc.bat b/build_scripts/win64/build_executable.bat similarity index 100% rename from build_scripts/win32/build_executable_msvc.bat rename to build_scripts/win64/build_executable.bat diff --git a/build_scripts/win64/build_executable.sh b/build_scripts/win64/build_executable.sh new file mode 100755 index 0000000000000000000000000000000000000000..1dd3685b162430ea492eb105d4fa7c4772d653f6 --- /dev/null +++ b/build_scripts/win64/build_executable.sh @@ -0,0 +1,37 @@ +#!/usr/bin/env bash +set -e + +cd "$(dirname "$0")" + +export PLATFORM=win64 + +BIN_DIR=../../builds/${PLATFORM}/game +TARGET_TYPE=x86_64-pc-windows-msvc +TARGET_DIR=../../target/${TARGET_TYPE}/release +EXE_EXTENSION=.exe +EXE_NAME=vulkan_app${EXE_EXTENSION} + +DB_NAME=test.db +DB_DIR=../../web_server/data +DB_URL_BUILD_SCRIPTS=sqlite://${DB_DIR}/${DB_NAME} +DB_URL_WORKSPACE=sqlite://web_server/data/${DB_NAME} +MIGRATIONS_SRC=../../web_server/migrations +WEB_SERVER_EXE_NAME=web_server.exe +WEB_SERVER_DST=../../builds/${PLATFORM}/web_server + +# Make sure target directories exist +mkdir -p ${BIN_DIR} +mkdir -p ${DB_DIR} + +echo Building ${PLATFORM}... + +# This command has to reference the db url and migrations relative to the build script directory +cargo sqlx database setup --database-url ${DB_URL_BUILD_SCRIPTS} --source ${MIGRATIONS_SRC} + +# This command has to be run relative to the root of the whole workspace :/ +export DATABASE_URL=${DB_URL_WORKSPACE} + +cargo xwin build --release --target ${TARGET_TYPE} + +cp ${TARGET_DIR}/${EXE_NAME} ${BIN_DIR}/${EXE_NAME} +cp ${TARGET_DIR}/${WEB_SERVER_EXE_NAME} ${WEB_SERVER_DST} diff --git a/build_scripts/win32/build_resources.bat b/build_scripts/win64/build_resources.bat similarity index 100% rename from build_scripts/win32/build_resources.bat rename to build_scripts/win64/build_resources.bat diff --git a/build_scripts/win32/build_resources.sh b/build_scripts/win64/build_resources.sh similarity index 64% rename from build_scripts/win32/build_resources.sh rename to build_scripts/win64/build_resources.sh index 85c23979d8724318534fafbb6d45522d877c65e0..1e14ff4ab79fde51e05939391a97dddf20e1ac44 100755 --- a/build_scripts/win32/build_resources.sh +++ b/build_scripts/win64/build_resources.sh @@ -1,21 +1,34 @@ - #!/usr/bin/env bash +set -e + cd "$(dirname "$0")" -PLATFORM=win32 -BIN_DIR=../../builds/${PLATFORM} -RESOURCES_DIR=../../resources -TOOLS_DIR=../../tools -SHADER_COMPILER=${TOOLS_DIR}/linux/glslangValidator/bin/glslangValidator +PLATFORM=win64 +BIN_DIR=../../builds/${PLATFORM}/game +RESOURCES_DIR=../../game/resources +# Since we're cross compiling, we should use the linux shader compiler to generate the spirv +EXTERNALS_DIR=../../external/linux +SHADER_COMPILER=${EXTERNALS_DIR}/glslangValidator/bin/glslangValidator SHADER_SRC_DIR=${RESOURCES_DIR}/shaders SHADER_DST_DIR=${BIN_DIR}/shaders +WEB_SERVER_BIN_DST=../../builds/${PLATFORM}/web_server +WEB_SERVER_TEMPLATES_DST=${WEB_SERVER_BIN_DST}/templates +WEB_SERVER_MIGRATIONS_DST=${WEB_SERVER_BIN_DST}/migrations + +WEB_SERVER_RESOURCES_SRC_ROOT=../../web_server +WEB_SERVER_TEMPLATES_SRC=${WEB_SERVER_RESOURCES_SRC_ROOT}/templates +WEB_SERVER_MIGRATIONS_SRC=${WEB_SERVER_RESOURCES_SRC_ROOT}/migrations + + # Make sure target directories exist mkdir -p ${BIN_DIR}/shaders mkdir -p ${BIN_DIR}/images mkdir -p ${BIN_DIR}/models mkdir -p ${BIN_DIR}/fonts mkdir -p ${BIN_DIR}/sprites +mkdir -p ${WEB_SERVER_TEMPLATES_DST} +mkdir -p ${WEB_SERVER_MIGRATIONS_DST} # Compile shaders ${SHADER_COMPILER} -V ${SHADER_SRC_DIR}/sprite.vert -o ${SHADER_DST_DIR}/sprite.vert.spv @@ -42,3 +55,5 @@ cp -rf ${RESOURCES_DIR}/models ${BIN_DIR} cp -rf ${RESOURCES_DIR}/fonts ${BIN_DIR} cp -rf ${RESOURCES_DIR}/sprites ${BIN_DIR} +cp -rf ${WEB_SERVER_TEMPLATES_SRC} ${WEB_SERVER_TEMPLATES_DST} +cp -rf ${WEB_SERVER_MIGRATIONS_SRC} ${WEB_SERVER_MIGRATIONS_DST} diff --git a/common/Cargo.toml b/common/Cargo.toml new file mode 100644 index 0000000000000000000000000000000000000000..cc777b965791c89b0399462449ec16b792633cec --- /dev/null +++ b/common/Cargo.toml @@ -0,0 +1,18 @@ +[package] +name = "common" +version = "0.1.0" +edition = "2021" + +#[lib] +#name = "common" +#crate-type = ["lib"] + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +sqlx = { version = "0.5.13", features = [ "runtime-tokio-native-tls", "sqlite", "macros", "migrate", "chrono", "uuid" ] } +uuid = { version = "1.0.0", features = ["v4", "serde"] } +chrono = { version = "0.4.19", features = ["serde"] } +rand = "0.8" +serde = { version = "1", features = ["derive"] } +serde_json = "1.0.79" diff --git a/common/src/lib.rs b/common/src/lib.rs new file mode 100644 index 0000000000000000000000000000000000000000..100c435e299e1511695ed077c1f69802f18db13a --- /dev/null +++ b/common/src/lib.rs @@ -0,0 +1,2 @@ + +pub mod messages; diff --git a/common/src/messages.rs b/common/src/messages.rs new file mode 100644 index 0000000000000000000000000000000000000000..950b9709980175df8dbb43a415423396c52bc7ca --- /dev/null +++ b/common/src/messages.rs @@ -0,0 +1,13 @@ + +use chrono::{Date, Utc}; +use uuid::Uuid; + +pub struct BountiesRequest +{ + pub id: Uuid, + pub name: String, + pub description: String, + pub created_date: Date<Utc>, + pub expiration_date: Date<Utc>, + pub current_cent_value: u32, +} \ No newline at end of file diff --git a/tools/linux/glslangValidator/bin/glslangValidator b/external/linux/glslangValidator/bin/glslangValidator similarity index 100% rename from tools/linux/glslangValidator/bin/glslangValidator rename to external/linux/glslangValidator/bin/glslangValidator diff --git a/tools/linux/glslangValidator/include/glslang/build_info.h b/external/linux/glslangValidator/include/glslang/build_info.h similarity index 100% rename from tools/linux/glslangValidator/include/glslang/build_info.h rename to external/linux/glslangValidator/include/glslang/build_info.h diff --git a/tools/linux/glslangValidator/lib/libHLSL.a b/external/linux/glslangValidator/lib/libHLSL.a similarity index 100% rename from tools/linux/glslangValidator/lib/libHLSL.a rename to external/linux/glslangValidator/lib/libHLSL.a diff --git a/tools/linux/glslangValidator/lib/libOGLCompiler.a b/external/linux/glslangValidator/lib/libOGLCompiler.a similarity index 100% rename from tools/linux/glslangValidator/lib/libOGLCompiler.a rename to external/linux/glslangValidator/lib/libOGLCompiler.a diff --git a/tools/linux/glslangValidator/lib/libOSDependent.a b/external/linux/glslangValidator/lib/libOSDependent.a similarity index 100% rename from tools/linux/glslangValidator/lib/libOSDependent.a rename to external/linux/glslangValidator/lib/libOSDependent.a diff --git a/tools/linux/glslangValidator/lib/libSPIRV-Tools-opt.a b/external/linux/glslangValidator/lib/libSPIRV-Tools-opt.a similarity index 100% rename from tools/linux/glslangValidator/lib/libSPIRV-Tools-opt.a rename to external/linux/glslangValidator/lib/libSPIRV-Tools-opt.a diff --git a/tools/linux/glslangValidator/lib/libSPIRV-Tools.a b/external/linux/glslangValidator/lib/libSPIRV-Tools.a similarity index 100% rename from tools/linux/glslangValidator/lib/libSPIRV-Tools.a rename to external/linux/glslangValidator/lib/libSPIRV-Tools.a diff --git a/tools/linux/glslangValidator/lib/libSPIRV.a b/external/linux/glslangValidator/lib/libSPIRV.a similarity index 100% rename from tools/linux/glslangValidator/lib/libSPIRV.a rename to external/linux/glslangValidator/lib/libSPIRV.a diff --git a/tools/linux/glslangValidator/lib/libSPVRemapper.a b/external/linux/glslangValidator/lib/libSPVRemapper.a similarity index 100% rename from tools/linux/glslangValidator/lib/libSPVRemapper.a rename to external/linux/glslangValidator/lib/libSPVRemapper.a diff --git a/tools/linux/glslangValidator/lib/libglslang.a b/external/linux/glslangValidator/lib/libglslang.a similarity index 100% rename from tools/linux/glslangValidator/lib/libglslang.a rename to external/linux/glslangValidator/lib/libglslang.a diff --git a/tools/macos/glslangValidator/bin/glslangValidator b/external/macos/glslangValidator/bin/glslangValidator similarity index 100% rename from tools/macos/glslangValidator/bin/glslangValidator rename to external/macos/glslangValidator/bin/glslangValidator diff --git a/tools/macos/glslangValidator/include/glslang/build_info.h b/external/macos/glslangValidator/include/glslang/build_info.h similarity index 100% rename from tools/macos/glslangValidator/include/glslang/build_info.h rename to external/macos/glslangValidator/include/glslang/build_info.h diff --git a/tools/macos/glslangValidator/lib/libHLSL.a b/external/macos/glslangValidator/lib/libHLSL.a similarity index 100% rename from tools/macos/glslangValidator/lib/libHLSL.a rename to external/macos/glslangValidator/lib/libHLSL.a diff --git a/tools/macos/glslangValidator/lib/libOGLCompiler.a b/external/macos/glslangValidator/lib/libOGLCompiler.a similarity index 100% rename from tools/macos/glslangValidator/lib/libOGLCompiler.a rename to external/macos/glslangValidator/lib/libOGLCompiler.a diff --git a/tools/macos/glslangValidator/lib/libOSDependent.a b/external/macos/glslangValidator/lib/libOSDependent.a similarity index 100% rename from tools/macos/glslangValidator/lib/libOSDependent.a rename to external/macos/glslangValidator/lib/libOSDependent.a diff --git a/tools/macos/glslangValidator/lib/libSPIRV-Tools-opt.a b/external/macos/glslangValidator/lib/libSPIRV-Tools-opt.a similarity index 100% rename from tools/macos/glslangValidator/lib/libSPIRV-Tools-opt.a rename to external/macos/glslangValidator/lib/libSPIRV-Tools-opt.a diff --git a/tools/macos/glslangValidator/lib/libSPIRV-Tools.a b/external/macos/glslangValidator/lib/libSPIRV-Tools.a similarity index 100% rename from tools/macos/glslangValidator/lib/libSPIRV-Tools.a rename to external/macos/glslangValidator/lib/libSPIRV-Tools.a diff --git a/tools/macos/glslangValidator/lib/libSPIRV.a b/external/macos/glslangValidator/lib/libSPIRV.a similarity index 100% rename from tools/macos/glslangValidator/lib/libSPIRV.a rename to external/macos/glslangValidator/lib/libSPIRV.a diff --git a/tools/macos/glslangValidator/lib/libSPVRemapper.a b/external/macos/glslangValidator/lib/libSPVRemapper.a similarity index 100% rename from tools/macos/glslangValidator/lib/libSPVRemapper.a rename to external/macos/glslangValidator/lib/libSPVRemapper.a diff --git a/tools/macos/glslangValidator/lib/libglslang.a b/external/macos/glslangValidator/lib/libglslang.a similarity index 100% rename from tools/macos/glslangValidator/lib/libglslang.a rename to external/macos/glslangValidator/lib/libglslang.a diff --git a/build_scripts/macos/MoltenVK_icd.json b/external/macos/moltenvk/MoltenVK_icd.json similarity index 100% rename from build_scripts/macos/MoltenVK_icd.json rename to external/macos/moltenvk/MoltenVK_icd.json diff --git a/external/macos/moltenvk/lib/libMoltenVK.dylib b/external/macos/moltenvk/lib/libMoltenVK.dylib new file mode 100755 index 0000000000000000000000000000000000000000..7aa2605fca03d788f2ce567070f778d5db5d7a40 Binary files /dev/null and b/external/macos/moltenvk/lib/libMoltenVK.dylib differ diff --git a/external/macos/moltenvk/lib/libvulkan.1.3.211.dylib b/external/macos/moltenvk/lib/libvulkan.1.3.211.dylib new file mode 100755 index 0000000000000000000000000000000000000000..78b1e4e204021c46578d05a2b45881493240f2d2 Binary files /dev/null and b/external/macos/moltenvk/lib/libvulkan.1.3.211.dylib differ diff --git a/tools/win32/glslangValidator/bin/glslangValidator.exe b/external/win64/glslangValidator/bin/glslangValidator.exe similarity index 100% rename from tools/win32/glslangValidator/bin/glslangValidator.exe rename to external/win64/glslangValidator/bin/glslangValidator.exe diff --git a/tools/win32/glslangValidator/bin/spirv-remap.exe b/external/win64/glslangValidator/bin/spirv-remap.exe similarity index 100% rename from tools/win32/glslangValidator/bin/spirv-remap.exe rename to external/win64/glslangValidator/bin/spirv-remap.exe diff --git a/tools/win32/glslangValidator/include/glslang/HLSL/hlslAttributes.h b/external/win64/glslangValidator/include/glslang/HLSL/hlslAttributes.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/HLSL/hlslAttributes.h rename to external/win64/glslangValidator/include/glslang/HLSL/hlslAttributes.h diff --git a/tools/win32/glslangValidator/include/glslang/HLSL/hlslGrammar.h b/external/win64/glslangValidator/include/glslang/HLSL/hlslGrammar.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/HLSL/hlslGrammar.h rename to external/win64/glslangValidator/include/glslang/HLSL/hlslGrammar.h diff --git a/tools/win32/glslangValidator/include/glslang/HLSL/hlslOpMap.h b/external/win64/glslangValidator/include/glslang/HLSL/hlslOpMap.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/HLSL/hlslOpMap.h rename to external/win64/glslangValidator/include/glslang/HLSL/hlslOpMap.h diff --git a/tools/win32/glslangValidator/include/glslang/HLSL/hlslParseHelper.h b/external/win64/glslangValidator/include/glslang/HLSL/hlslParseHelper.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/HLSL/hlslParseHelper.h rename to external/win64/glslangValidator/include/glslang/HLSL/hlslParseHelper.h diff --git a/tools/win32/glslangValidator/include/glslang/HLSL/hlslParseables.h b/external/win64/glslangValidator/include/glslang/HLSL/hlslParseables.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/HLSL/hlslParseables.h rename to external/win64/glslangValidator/include/glslang/HLSL/hlslParseables.h diff --git a/tools/win32/glslangValidator/include/glslang/HLSL/hlslScanContext.h b/external/win64/glslangValidator/include/glslang/HLSL/hlslScanContext.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/HLSL/hlslScanContext.h rename to external/win64/glslangValidator/include/glslang/HLSL/hlslScanContext.h diff --git a/tools/win32/glslangValidator/include/glslang/HLSL/hlslTokenStream.h b/external/win64/glslangValidator/include/glslang/HLSL/hlslTokenStream.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/HLSL/hlslTokenStream.h rename to external/win64/glslangValidator/include/glslang/HLSL/hlslTokenStream.h diff --git a/tools/win32/glslangValidator/include/glslang/HLSL/hlslTokens.h b/external/win64/glslangValidator/include/glslang/HLSL/hlslTokens.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/HLSL/hlslTokens.h rename to external/win64/glslangValidator/include/glslang/HLSL/hlslTokens.h diff --git a/tools/win32/glslangValidator/include/glslang/Include/BaseTypes.h b/external/win64/glslangValidator/include/glslang/Include/BaseTypes.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/Include/BaseTypes.h rename to external/win64/glslangValidator/include/glslang/Include/BaseTypes.h diff --git a/tools/win32/glslangValidator/include/glslang/Include/Common.h b/external/win64/glslangValidator/include/glslang/Include/Common.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/Include/Common.h rename to external/win64/glslangValidator/include/glslang/Include/Common.h diff --git a/tools/win32/glslangValidator/include/glslang/Include/ConstantUnion.h b/external/win64/glslangValidator/include/glslang/Include/ConstantUnion.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/Include/ConstantUnion.h rename to external/win64/glslangValidator/include/glslang/Include/ConstantUnion.h diff --git a/tools/win32/glslangValidator/include/glslang/Include/InfoSink.h b/external/win64/glslangValidator/include/glslang/Include/InfoSink.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/Include/InfoSink.h rename to external/win64/glslangValidator/include/glslang/Include/InfoSink.h diff --git a/tools/win32/glslangValidator/include/glslang/Include/InitializeGlobals.h b/external/win64/glslangValidator/include/glslang/Include/InitializeGlobals.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/Include/InitializeGlobals.h rename to external/win64/glslangValidator/include/glslang/Include/InitializeGlobals.h diff --git a/tools/win32/glslangValidator/include/glslang/Include/PoolAlloc.h b/external/win64/glslangValidator/include/glslang/Include/PoolAlloc.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/Include/PoolAlloc.h rename to external/win64/glslangValidator/include/glslang/Include/PoolAlloc.h diff --git a/tools/win32/glslangValidator/include/glslang/Include/ResourceLimits.h b/external/win64/glslangValidator/include/glslang/Include/ResourceLimits.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/Include/ResourceLimits.h rename to external/win64/glslangValidator/include/glslang/Include/ResourceLimits.h diff --git a/tools/win32/glslangValidator/include/glslang/Include/ShHandle.h b/external/win64/glslangValidator/include/glslang/Include/ShHandle.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/Include/ShHandle.h rename to external/win64/glslangValidator/include/glslang/Include/ShHandle.h diff --git a/tools/win32/glslangValidator/include/glslang/Include/Types.h b/external/win64/glslangValidator/include/glslang/Include/Types.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/Include/Types.h rename to external/win64/glslangValidator/include/glslang/Include/Types.h diff --git a/tools/win32/glslangValidator/include/glslang/Include/arrays.h b/external/win64/glslangValidator/include/glslang/Include/arrays.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/Include/arrays.h rename to external/win64/glslangValidator/include/glslang/Include/arrays.h diff --git a/tools/win32/glslangValidator/include/glslang/Include/glslang_c_interface.h b/external/win64/glslangValidator/include/glslang/Include/glslang_c_interface.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/Include/glslang_c_interface.h rename to external/win64/glslangValidator/include/glslang/Include/glslang_c_interface.h diff --git a/tools/win32/glslangValidator/include/glslang/Include/glslang_c_shader_types.h b/external/win64/glslangValidator/include/glslang/Include/glslang_c_shader_types.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/Include/glslang_c_shader_types.h rename to external/win64/glslangValidator/include/glslang/Include/glslang_c_shader_types.h diff --git a/tools/win32/glslangValidator/include/glslang/Include/intermediate.h b/external/win64/glslangValidator/include/glslang/Include/intermediate.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/Include/intermediate.h rename to external/win64/glslangValidator/include/glslang/Include/intermediate.h diff --git a/tools/win32/glslangValidator/include/glslang/MachineIndependent/Initialize.h b/external/win64/glslangValidator/include/glslang/MachineIndependent/Initialize.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/MachineIndependent/Initialize.h rename to external/win64/glslangValidator/include/glslang/MachineIndependent/Initialize.h diff --git a/tools/win32/glslangValidator/include/glslang/MachineIndependent/LiveTraverser.h b/external/win64/glslangValidator/include/glslang/MachineIndependent/LiveTraverser.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/MachineIndependent/LiveTraverser.h rename to external/win64/glslangValidator/include/glslang/MachineIndependent/LiveTraverser.h diff --git a/tools/win32/glslangValidator/include/glslang/MachineIndependent/ParseHelper.h b/external/win64/glslangValidator/include/glslang/MachineIndependent/ParseHelper.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/MachineIndependent/ParseHelper.h rename to external/win64/glslangValidator/include/glslang/MachineIndependent/ParseHelper.h diff --git a/tools/win32/glslangValidator/include/glslang/MachineIndependent/RemoveTree.h b/external/win64/glslangValidator/include/glslang/MachineIndependent/RemoveTree.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/MachineIndependent/RemoveTree.h rename to external/win64/glslangValidator/include/glslang/MachineIndependent/RemoveTree.h diff --git a/tools/win32/glslangValidator/include/glslang/MachineIndependent/Scan.h b/external/win64/glslangValidator/include/glslang/MachineIndependent/Scan.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/MachineIndependent/Scan.h rename to external/win64/glslangValidator/include/glslang/MachineIndependent/Scan.h diff --git a/tools/win32/glslangValidator/include/glslang/MachineIndependent/ScanContext.h b/external/win64/glslangValidator/include/glslang/MachineIndependent/ScanContext.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/MachineIndependent/ScanContext.h rename to external/win64/glslangValidator/include/glslang/MachineIndependent/ScanContext.h diff --git a/tools/win32/glslangValidator/include/glslang/MachineIndependent/SymbolTable.h b/external/win64/glslangValidator/include/glslang/MachineIndependent/SymbolTable.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/MachineIndependent/SymbolTable.h rename to external/win64/glslangValidator/include/glslang/MachineIndependent/SymbolTable.h diff --git a/tools/win32/glslangValidator/include/glslang/MachineIndependent/Versions.h b/external/win64/glslangValidator/include/glslang/MachineIndependent/Versions.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/MachineIndependent/Versions.h rename to external/win64/glslangValidator/include/glslang/MachineIndependent/Versions.h diff --git a/tools/win32/glslangValidator/include/glslang/MachineIndependent/attribute.h b/external/win64/glslangValidator/include/glslang/MachineIndependent/attribute.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/MachineIndependent/attribute.h rename to external/win64/glslangValidator/include/glslang/MachineIndependent/attribute.h diff --git a/tools/win32/glslangValidator/include/glslang/MachineIndependent/gl_types.h b/external/win64/glslangValidator/include/glslang/MachineIndependent/gl_types.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/MachineIndependent/gl_types.h rename to external/win64/glslangValidator/include/glslang/MachineIndependent/gl_types.h diff --git a/tools/win32/glslangValidator/include/glslang/MachineIndependent/glslang_tab.cpp.h b/external/win64/glslangValidator/include/glslang/MachineIndependent/glslang_tab.cpp.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/MachineIndependent/glslang_tab.cpp.h rename to external/win64/glslangValidator/include/glslang/MachineIndependent/glslang_tab.cpp.h diff --git a/tools/win32/glslangValidator/include/glslang/MachineIndependent/iomapper.h b/external/win64/glslangValidator/include/glslang/MachineIndependent/iomapper.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/MachineIndependent/iomapper.h rename to external/win64/glslangValidator/include/glslang/MachineIndependent/iomapper.h diff --git a/tools/win32/glslangValidator/include/glslang/MachineIndependent/localintermediate.h b/external/win64/glslangValidator/include/glslang/MachineIndependent/localintermediate.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/MachineIndependent/localintermediate.h rename to external/win64/glslangValidator/include/glslang/MachineIndependent/localintermediate.h diff --git a/tools/win32/glslangValidator/include/glslang/MachineIndependent/parseVersions.h b/external/win64/glslangValidator/include/glslang/MachineIndependent/parseVersions.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/MachineIndependent/parseVersions.h rename to external/win64/glslangValidator/include/glslang/MachineIndependent/parseVersions.h diff --git a/tools/win32/glslangValidator/include/glslang/MachineIndependent/preprocessor/PpContext.h b/external/win64/glslangValidator/include/glslang/MachineIndependent/preprocessor/PpContext.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/MachineIndependent/preprocessor/PpContext.h rename to external/win64/glslangValidator/include/glslang/MachineIndependent/preprocessor/PpContext.h diff --git a/tools/win32/glslangValidator/include/glslang/MachineIndependent/preprocessor/PpTokens.h b/external/win64/glslangValidator/include/glslang/MachineIndependent/preprocessor/PpTokens.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/MachineIndependent/preprocessor/PpTokens.h rename to external/win64/glslangValidator/include/glslang/MachineIndependent/preprocessor/PpTokens.h diff --git a/tools/win32/glslangValidator/include/glslang/MachineIndependent/propagateNoContraction.h b/external/win64/glslangValidator/include/glslang/MachineIndependent/propagateNoContraction.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/MachineIndependent/propagateNoContraction.h rename to external/win64/glslangValidator/include/glslang/MachineIndependent/propagateNoContraction.h diff --git a/tools/win32/glslangValidator/include/glslang/MachineIndependent/reflection.h b/external/win64/glslangValidator/include/glslang/MachineIndependent/reflection.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/MachineIndependent/reflection.h rename to external/win64/glslangValidator/include/glslang/MachineIndependent/reflection.h diff --git a/tools/win32/glslangValidator/include/glslang/Public/ShaderLang.h b/external/win64/glslangValidator/include/glslang/Public/ShaderLang.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/Public/ShaderLang.h rename to external/win64/glslangValidator/include/glslang/Public/ShaderLang.h diff --git a/tools/win32/glslangValidator/include/glslang/SPIRV/GLSL.ext.AMD.h b/external/win64/glslangValidator/include/glslang/SPIRV/GLSL.ext.AMD.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/SPIRV/GLSL.ext.AMD.h rename to external/win64/glslangValidator/include/glslang/SPIRV/GLSL.ext.AMD.h diff --git a/tools/win32/glslangValidator/include/glslang/SPIRV/GLSL.ext.EXT.h b/external/win64/glslangValidator/include/glslang/SPIRV/GLSL.ext.EXT.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/SPIRV/GLSL.ext.EXT.h rename to external/win64/glslangValidator/include/glslang/SPIRV/GLSL.ext.EXT.h diff --git a/tools/win32/glslangValidator/include/glslang/SPIRV/GLSL.ext.KHR.h b/external/win64/glslangValidator/include/glslang/SPIRV/GLSL.ext.KHR.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/SPIRV/GLSL.ext.KHR.h rename to external/win64/glslangValidator/include/glslang/SPIRV/GLSL.ext.KHR.h diff --git a/tools/win32/glslangValidator/include/glslang/SPIRV/GLSL.ext.NV.h b/external/win64/glslangValidator/include/glslang/SPIRV/GLSL.ext.NV.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/SPIRV/GLSL.ext.NV.h rename to external/win64/glslangValidator/include/glslang/SPIRV/GLSL.ext.NV.h diff --git a/tools/win32/glslangValidator/include/glslang/SPIRV/GLSL.std.450.h b/external/win64/glslangValidator/include/glslang/SPIRV/GLSL.std.450.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/SPIRV/GLSL.std.450.h rename to external/win64/glslangValidator/include/glslang/SPIRV/GLSL.std.450.h diff --git a/tools/win32/glslangValidator/include/glslang/SPIRV/GlslangToSpv.h b/external/win64/glslangValidator/include/glslang/SPIRV/GlslangToSpv.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/SPIRV/GlslangToSpv.h rename to external/win64/glslangValidator/include/glslang/SPIRV/GlslangToSpv.h diff --git a/tools/win32/glslangValidator/include/glslang/SPIRV/Logger.h b/external/win64/glslangValidator/include/glslang/SPIRV/Logger.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/SPIRV/Logger.h rename to external/win64/glslangValidator/include/glslang/SPIRV/Logger.h diff --git a/tools/win32/glslangValidator/include/glslang/SPIRV/NonSemanticDebugPrintf.h b/external/win64/glslangValidator/include/glslang/SPIRV/NonSemanticDebugPrintf.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/SPIRV/NonSemanticDebugPrintf.h rename to external/win64/glslangValidator/include/glslang/SPIRV/NonSemanticDebugPrintf.h diff --git a/tools/win32/glslangValidator/include/glslang/SPIRV/SPVRemapper.h b/external/win64/glslangValidator/include/glslang/SPIRV/SPVRemapper.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/SPIRV/SPVRemapper.h rename to external/win64/glslangValidator/include/glslang/SPIRV/SPVRemapper.h diff --git a/tools/win32/glslangValidator/include/glslang/SPIRV/SpvBuilder.h b/external/win64/glslangValidator/include/glslang/SPIRV/SpvBuilder.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/SPIRV/SpvBuilder.h rename to external/win64/glslangValidator/include/glslang/SPIRV/SpvBuilder.h diff --git a/tools/win32/glslangValidator/include/glslang/SPIRV/SpvTools.h b/external/win64/glslangValidator/include/glslang/SPIRV/SpvTools.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/SPIRV/SpvTools.h rename to external/win64/glslangValidator/include/glslang/SPIRV/SpvTools.h diff --git a/tools/win32/glslangValidator/include/glslang/SPIRV/bitutils.h b/external/win64/glslangValidator/include/glslang/SPIRV/bitutils.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/SPIRV/bitutils.h rename to external/win64/glslangValidator/include/glslang/SPIRV/bitutils.h diff --git a/tools/win32/glslangValidator/include/glslang/SPIRV/disassemble.h b/external/win64/glslangValidator/include/glslang/SPIRV/disassemble.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/SPIRV/disassemble.h rename to external/win64/glslangValidator/include/glslang/SPIRV/disassemble.h diff --git a/tools/win32/glslangValidator/include/glslang/SPIRV/doc.h b/external/win64/glslangValidator/include/glslang/SPIRV/doc.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/SPIRV/doc.h rename to external/win64/glslangValidator/include/glslang/SPIRV/doc.h diff --git a/tools/win32/glslangValidator/include/glslang/SPIRV/hex_float.h b/external/win64/glslangValidator/include/glslang/SPIRV/hex_float.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/SPIRV/hex_float.h rename to external/win64/glslangValidator/include/glslang/SPIRV/hex_float.h diff --git a/tools/win32/glslangValidator/include/glslang/SPIRV/spirv.hpp b/external/win64/glslangValidator/include/glslang/SPIRV/spirv.hpp similarity index 100% rename from tools/win32/glslangValidator/include/glslang/SPIRV/spirv.hpp rename to external/win64/glslangValidator/include/glslang/SPIRV/spirv.hpp diff --git a/tools/win32/glslangValidator/include/glslang/SPIRV/spvIR.h b/external/win64/glslangValidator/include/glslang/SPIRV/spvIR.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/SPIRV/spvIR.h rename to external/win64/glslangValidator/include/glslang/SPIRV/spvIR.h diff --git a/tools/win32/glslangValidator/include/glslang/build_info.h b/external/win64/glslangValidator/include/glslang/build_info.h similarity index 100% rename from tools/win32/glslangValidator/include/glslang/build_info.h rename to external/win64/glslangValidator/include/glslang/build_info.h diff --git a/tools/win32/glslangValidator/lib/HLSL.lib b/external/win64/glslangValidator/lib/HLSL.lib similarity index 100% rename from tools/win32/glslangValidator/lib/HLSL.lib rename to external/win64/glslangValidator/lib/HLSL.lib diff --git a/tools/win32/glslangValidator/lib/OGLCompiler.lib b/external/win64/glslangValidator/lib/OGLCompiler.lib similarity index 100% rename from tools/win32/glslangValidator/lib/OGLCompiler.lib rename to external/win64/glslangValidator/lib/OGLCompiler.lib diff --git a/tools/win32/glslangValidator/lib/OSDependent.lib b/external/win64/glslangValidator/lib/OSDependent.lib similarity index 100% rename from tools/win32/glslangValidator/lib/OSDependent.lib rename to external/win64/glslangValidator/lib/OSDependent.lib diff --git a/tools/win32/glslangValidator/lib/SPIRV-Tools-opt.lib b/external/win64/glslangValidator/lib/SPIRV-Tools-opt.lib similarity index 100% rename from tools/win32/glslangValidator/lib/SPIRV-Tools-opt.lib rename to external/win64/glslangValidator/lib/SPIRV-Tools-opt.lib diff --git a/tools/win32/glslangValidator/lib/SPIRV-Tools.lib b/external/win64/glslangValidator/lib/SPIRV-Tools.lib similarity index 100% rename from tools/win32/glslangValidator/lib/SPIRV-Tools.lib rename to external/win64/glslangValidator/lib/SPIRV-Tools.lib diff --git a/tools/win32/glslangValidator/lib/SPIRV.lib b/external/win64/glslangValidator/lib/SPIRV.lib similarity index 100% rename from tools/win32/glslangValidator/lib/SPIRV.lib rename to external/win64/glslangValidator/lib/SPIRV.lib diff --git a/tools/win32/glslangValidator/lib/SPVRemapper.lib b/external/win64/glslangValidator/lib/SPVRemapper.lib similarity index 100% rename from tools/win32/glslangValidator/lib/SPVRemapper.lib rename to external/win64/glslangValidator/lib/SPVRemapper.lib diff --git a/tools/win32/glslangValidator/lib/glslang.lib b/external/win64/glslangValidator/lib/glslang.lib similarity index 100% rename from tools/win32/glslangValidator/lib/glslang.lib rename to external/win64/glslangValidator/lib/glslang.lib diff --git a/game/Cargo.toml b/game/Cargo.toml new file mode 100644 index 0000000000000000000000000000000000000000..552d0306c965bdb16f8bf574c070f13a2cb498d9 --- /dev/null +++ b/game/Cargo.toml @@ -0,0 +1,43 @@ +[package] +name = "vulkan_app" +version = "0.1.0" +authors = ["Scott Johnson <zeropointtwo@gmail.com>"] +edition = "2018" +description = "An in progress game" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html +#[profile.release] +#debug = false + +[dependencies] + +common = { path = "../common" } + +log = "0.4.17" +env_logger = "0.9.0" +winit = "0.25.0" +ash = "0.37.0" +ash-window = "0.10.0" +image = "0.24.2" +cgmath = "0.18.0" +rayon = "1.5.2" + +# Fonts +fontdue = "0.4.0" +csv = "1.1.6" +serde = { version = "1.0.137", features = ["derive"]} +serde_json = "1.0.81" +toml = "0.5.9" + +# IMGui +imgui = "0.8.2" +imgui-winit-support = "0.8.2" + +data-url = "0.1.1" + +[target.'cfg(target_os="macos")'.dependencies] +core-foundation = "0.9.3" + +[target.'cfg(target_os="windows")'.dependencies] +#winapi = "0.3.9" + diff --git a/README.md b/game/README.md similarity index 61% rename from README.md rename to game/README.md index 582319543b1f36bdadd642fa3b23997fffa4bb4d..6fad4c3d539d1ab7ead4571432a959d1d3bdd2b5 100644 --- a/README.md +++ b/game/README.md @@ -1,9 +1,13 @@ +# General Setup + +* Install `sqlx-cli` as a cargo tool with the command `cargo install sqlx-cli`. +* Before running the web server, you will need to set the env variable `DATABASE_URL` to the location of your sqlite database. + # Windows Setup * Download ``rustup-init`` from the [rustup](https://rustup.rs/) website * Install `rustup-init` - * The build is only tested using the stable x86_64-pc-windows-gnu toolchain. The msvc toolchain should work, but I don't have MSVC to test it. # Building on Windows @@ -15,6 +19,14 @@ Run the `build_all.bat` to build using the windows gnu toolchain. The build will * Run `build_all.sh` to build both Linux and Windows builds. The Windows builds should run with Wine and on Windows itself. * If you only want to build for a specific platform, run the `build_all.sh` script for the desired os under the `build_scripts` folder. +## Cross Compiling windows MSVC from Linux + +In addition to the usual linux setup, you will need to add the `x86_64-pc-windows-msvc` target with `rustup` and +install a cargo tool called `cargo-xwin`. This can be done with the following commands: + +* `rustup target add x86_64-pc-windows-msvc` +* `cargo install cargo-xwin` + # Mac Notes Currently, MoltenVK defaults to disabling the argument buffer code path. This prevents the shaders from supporting the diff --git a/resources/fonts/Roboto-Regular.ttf b/game/resources/fonts/Roboto-Regular.ttf similarity index 100% rename from resources/fonts/Roboto-Regular.ttf rename to game/resources/fonts/Roboto-Regular.ttf diff --git a/resources/fonts/roboto-regular.csv b/game/resources/fonts/roboto-regular.csv similarity index 100% rename from resources/fonts/roboto-regular.csv rename to game/resources/fonts/roboto-regular.csv diff --git a/resources/fonts/roboto-regular.png b/game/resources/fonts/roboto-regular.png similarity index 100% rename from resources/fonts/roboto-regular.png rename to game/resources/fonts/roboto-regular.png diff --git a/resources/images/alex/alex-sheet-0.indexed.png b/game/resources/images/alex/alex-sheet-0.indexed.png similarity index 100% rename from resources/images/alex/alex-sheet-0.indexed.png rename to game/resources/images/alex/alex-sheet-0.indexed.png diff --git a/resources/images/alex/alex-sheet-1.indexed.png b/game/resources/images/alex/alex-sheet-1.indexed.png similarity index 100% rename from resources/images/alex/alex-sheet-1.indexed.png rename to game/resources/images/alex/alex-sheet-1.indexed.png diff --git a/resources/images/alex/alex-sheet-2.indexed.png b/game/resources/images/alex/alex-sheet-2.indexed.png similarity index 100% rename from resources/images/alex/alex-sheet-2.indexed.png rename to game/resources/images/alex/alex-sheet-2.indexed.png diff --git a/resources/images/alex/alex-sheet-3.indexed.png b/game/resources/images/alex/alex-sheet-3.indexed.png similarity index 100% rename from resources/images/alex/alex-sheet-3.indexed.png rename to game/resources/images/alex/alex-sheet-3.indexed.png diff --git a/resources/images/alex/alex-sheet-4.indexed.png b/game/resources/images/alex/alex-sheet-4.indexed.png similarity index 100% rename from resources/images/alex/alex-sheet-4.indexed.png rename to game/resources/images/alex/alex-sheet-4.indexed.png diff --git a/resources/images/alex/alex-sheet-5.indexed.png b/game/resources/images/alex/alex-sheet-5.indexed.png similarity index 100% rename from resources/images/alex/alex-sheet-5.indexed.png rename to game/resources/images/alex/alex-sheet-5.indexed.png diff --git a/resources/images/alex/alex-sheet-6.indexed.png b/game/resources/images/alex/alex-sheet-6.indexed.png similarity index 100% rename from resources/images/alex/alex-sheet-6.indexed.png rename to game/resources/images/alex/alex-sheet-6.indexed.png diff --git a/resources/images/alex/alex-sheet-7.indexed.png b/game/resources/images/alex/alex-sheet-7.indexed.png similarity index 100% rename from resources/images/alex/alex-sheet-7.indexed.png rename to game/resources/images/alex/alex-sheet-7.indexed.png diff --git a/resources/images/alex/alex-sheet-8.indexed.png b/game/resources/images/alex/alex-sheet-8.indexed.png similarity index 100% rename from resources/images/alex/alex-sheet-8.indexed.png rename to game/resources/images/alex/alex-sheet-8.indexed.png diff --git a/resources/images/alex/alex-sheet-9.indexed.png b/game/resources/images/alex/alex-sheet-9.indexed.png similarity index 100% rename from resources/images/alex/alex-sheet-9.indexed.png rename to game/resources/images/alex/alex-sheet-9.indexed.png diff --git a/resources/images/aurora_animation.indexed.png b/game/resources/images/aurora_animation.indexed.png similarity index 100% rename from resources/images/aurora_animation.indexed.png rename to game/resources/images/aurora_animation.indexed.png diff --git a/resources/images/chun-li/chun-li-sheet-0.indexed.png b/game/resources/images/chun-li/chun-li-sheet-0.indexed.png similarity index 100% rename from resources/images/chun-li/chun-li-sheet-0.indexed.png rename to game/resources/images/chun-li/chun-li-sheet-0.indexed.png diff --git a/resources/images/chun-li/chun-li-sheet-1.indexed.png b/game/resources/images/chun-li/chun-li-sheet-1.indexed.png similarity index 100% rename from resources/images/chun-li/chun-li-sheet-1.indexed.png rename to game/resources/images/chun-li/chun-li-sheet-1.indexed.png diff --git a/resources/images/chun-li/chun-li-sheet-2.indexed.png b/game/resources/images/chun-li/chun-li-sheet-2.indexed.png similarity index 100% rename from resources/images/chun-li/chun-li-sheet-2.indexed.png rename to game/resources/images/chun-li/chun-li-sheet-2.indexed.png diff --git a/resources/images/chun-li/chun-li-sheet-3.indexed.png b/game/resources/images/chun-li/chun-li-sheet-3.indexed.png similarity index 100% rename from resources/images/chun-li/chun-li-sheet-3.indexed.png rename to game/resources/images/chun-li/chun-li-sheet-3.indexed.png diff --git a/resources/images/chun-li/chun-li-sheet-4.indexed.png b/game/resources/images/chun-li/chun-li-sheet-4.indexed.png similarity index 100% rename from resources/images/chun-li/chun-li-sheet-4.indexed.png rename to game/resources/images/chun-li/chun-li-sheet-4.indexed.png diff --git a/resources/images/chun-li/chun-li-sheet-5.indexed.png b/game/resources/images/chun-li/chun-li-sheet-5.indexed.png similarity index 100% rename from resources/images/chun-li/chun-li-sheet-5.indexed.png rename to game/resources/images/chun-li/chun-li-sheet-5.indexed.png diff --git a/resources/images/chun-li/chun-li-sheet-6.indexed.png b/game/resources/images/chun-li/chun-li-sheet-6.indexed.png similarity index 100% rename from resources/images/chun-li/chun-li-sheet-6.indexed.png rename to game/resources/images/chun-li/chun-li-sheet-6.indexed.png diff --git a/resources/images/dudley.indexed.png b/game/resources/images/dudley.indexed.png similarity index 100% rename from resources/images/dudley.indexed.png rename to game/resources/images/dudley.indexed.png diff --git a/resources/images/dudley/dudley-sheet-0.indexed.png b/game/resources/images/dudley/dudley-sheet-0.indexed.png similarity index 100% rename from resources/images/dudley/dudley-sheet-0.indexed.png rename to game/resources/images/dudley/dudley-sheet-0.indexed.png diff --git a/resources/images/dudley/dudley-sheet-1.indexed.png b/game/resources/images/dudley/dudley-sheet-1.indexed.png similarity index 100% rename from resources/images/dudley/dudley-sheet-1.indexed.png rename to game/resources/images/dudley/dudley-sheet-1.indexed.png diff --git a/resources/images/dudley/dudley-sheet-2.indexed.png b/game/resources/images/dudley/dudley-sheet-2.indexed.png similarity index 100% rename from resources/images/dudley/dudley-sheet-2.indexed.png rename to game/resources/images/dudley/dudley-sheet-2.indexed.png diff --git a/resources/images/dudley/dudley-sheet-3.indexed.png b/game/resources/images/dudley/dudley-sheet-3.indexed.png similarity index 100% rename from resources/images/dudley/dudley-sheet-3.indexed.png rename to game/resources/images/dudley/dudley-sheet-3.indexed.png diff --git a/resources/images/dudley/dudley-sheet-4.indexed.png b/game/resources/images/dudley/dudley-sheet-4.indexed.png similarity index 100% rename from resources/images/dudley/dudley-sheet-4.indexed.png rename to game/resources/images/dudley/dudley-sheet-4.indexed.png diff --git a/resources/images/dudley/dudley-sheet-5.indexed.png b/game/resources/images/dudley/dudley-sheet-5.indexed.png similarity index 100% rename from resources/images/dudley/dudley-sheet-5.indexed.png rename to game/resources/images/dudley/dudley-sheet-5.indexed.png diff --git a/resources/images/hugo/hugo-sheet-0.indexed.png b/game/resources/images/hugo/hugo-sheet-0.indexed.png similarity index 100% rename from resources/images/hugo/hugo-sheet-0.indexed.png rename to game/resources/images/hugo/hugo-sheet-0.indexed.png diff --git a/resources/images/hugo/hugo-sheet-1.indexed.png b/game/resources/images/hugo/hugo-sheet-1.indexed.png similarity index 100% rename from resources/images/hugo/hugo-sheet-1.indexed.png rename to game/resources/images/hugo/hugo-sheet-1.indexed.png diff --git a/resources/images/hugo/hugo-sheet-10.indexed.png b/game/resources/images/hugo/hugo-sheet-10.indexed.png similarity index 100% rename from resources/images/hugo/hugo-sheet-10.indexed.png rename to game/resources/images/hugo/hugo-sheet-10.indexed.png diff --git a/resources/images/hugo/hugo-sheet-11.indexed.png b/game/resources/images/hugo/hugo-sheet-11.indexed.png similarity index 100% rename from resources/images/hugo/hugo-sheet-11.indexed.png rename to game/resources/images/hugo/hugo-sheet-11.indexed.png diff --git a/resources/images/hugo/hugo-sheet-12.indexed.png b/game/resources/images/hugo/hugo-sheet-12.indexed.png similarity index 100% rename from resources/images/hugo/hugo-sheet-12.indexed.png rename to game/resources/images/hugo/hugo-sheet-12.indexed.png diff --git a/resources/images/hugo/hugo-sheet-13.indexed.png b/game/resources/images/hugo/hugo-sheet-13.indexed.png similarity index 100% rename from resources/images/hugo/hugo-sheet-13.indexed.png rename to game/resources/images/hugo/hugo-sheet-13.indexed.png diff --git a/resources/images/hugo/hugo-sheet-2.indexed.png b/game/resources/images/hugo/hugo-sheet-2.indexed.png similarity index 100% rename from resources/images/hugo/hugo-sheet-2.indexed.png rename to game/resources/images/hugo/hugo-sheet-2.indexed.png diff --git a/resources/images/hugo/hugo-sheet-3.indexed.png b/game/resources/images/hugo/hugo-sheet-3.indexed.png similarity index 100% rename from resources/images/hugo/hugo-sheet-3.indexed.png rename to game/resources/images/hugo/hugo-sheet-3.indexed.png diff --git a/resources/images/hugo/hugo-sheet-4.indexed.png b/game/resources/images/hugo/hugo-sheet-4.indexed.png similarity index 100% rename from resources/images/hugo/hugo-sheet-4.indexed.png rename to game/resources/images/hugo/hugo-sheet-4.indexed.png diff --git a/resources/images/hugo/hugo-sheet-5.indexed.png b/game/resources/images/hugo/hugo-sheet-5.indexed.png similarity index 100% rename from resources/images/hugo/hugo-sheet-5.indexed.png rename to game/resources/images/hugo/hugo-sheet-5.indexed.png diff --git a/resources/images/hugo/hugo-sheet-6.indexed.png b/game/resources/images/hugo/hugo-sheet-6.indexed.png similarity index 100% rename from resources/images/hugo/hugo-sheet-6.indexed.png rename to game/resources/images/hugo/hugo-sheet-6.indexed.png diff --git a/resources/images/hugo/hugo-sheet-7.indexed.png b/game/resources/images/hugo/hugo-sheet-7.indexed.png similarity index 100% rename from resources/images/hugo/hugo-sheet-7.indexed.png rename to game/resources/images/hugo/hugo-sheet-7.indexed.png diff --git a/resources/images/hugo/hugo-sheet-8.indexed.png b/game/resources/images/hugo/hugo-sheet-8.indexed.png similarity index 100% rename from resources/images/hugo/hugo-sheet-8.indexed.png rename to game/resources/images/hugo/hugo-sheet-8.indexed.png diff --git a/resources/images/hugo/hugo-sheet-9.indexed.png b/game/resources/images/hugo/hugo-sheet-9.indexed.png similarity index 100% rename from resources/images/hugo/hugo-sheet-9.indexed.png rename to game/resources/images/hugo/hugo-sheet-9.indexed.png diff --git a/resources/images/ibuki/ibuki-sheet-0.indexed.png b/game/resources/images/ibuki/ibuki-sheet-0.indexed.png similarity index 100% rename from resources/images/ibuki/ibuki-sheet-0.indexed.png rename to game/resources/images/ibuki/ibuki-sheet-0.indexed.png diff --git a/resources/images/ibuki/ibuki-sheet-1.indexed.png b/game/resources/images/ibuki/ibuki-sheet-1.indexed.png similarity index 100% rename from resources/images/ibuki/ibuki-sheet-1.indexed.png rename to game/resources/images/ibuki/ibuki-sheet-1.indexed.png diff --git a/resources/images/ibuki/ibuki-sheet-10.indexed.png b/game/resources/images/ibuki/ibuki-sheet-10.indexed.png similarity index 100% rename from resources/images/ibuki/ibuki-sheet-10.indexed.png rename to game/resources/images/ibuki/ibuki-sheet-10.indexed.png diff --git a/resources/images/ibuki/ibuki-sheet-2.indexed.png b/game/resources/images/ibuki/ibuki-sheet-2.indexed.png similarity index 100% rename from resources/images/ibuki/ibuki-sheet-2.indexed.png rename to game/resources/images/ibuki/ibuki-sheet-2.indexed.png diff --git a/resources/images/ibuki/ibuki-sheet-3.indexed.png b/game/resources/images/ibuki/ibuki-sheet-3.indexed.png similarity index 100% rename from resources/images/ibuki/ibuki-sheet-3.indexed.png rename to game/resources/images/ibuki/ibuki-sheet-3.indexed.png diff --git a/resources/images/ibuki/ibuki-sheet-4.indexed.png b/game/resources/images/ibuki/ibuki-sheet-4.indexed.png similarity index 100% rename from resources/images/ibuki/ibuki-sheet-4.indexed.png rename to game/resources/images/ibuki/ibuki-sheet-4.indexed.png diff --git a/resources/images/ibuki/ibuki-sheet-5.indexed.png b/game/resources/images/ibuki/ibuki-sheet-5.indexed.png similarity index 100% rename from resources/images/ibuki/ibuki-sheet-5.indexed.png rename to game/resources/images/ibuki/ibuki-sheet-5.indexed.png diff --git a/resources/images/ibuki/ibuki-sheet-6.indexed.png b/game/resources/images/ibuki/ibuki-sheet-6.indexed.png similarity index 100% rename from resources/images/ibuki/ibuki-sheet-6.indexed.png rename to game/resources/images/ibuki/ibuki-sheet-6.indexed.png diff --git a/resources/images/ibuki/ibuki-sheet-7.indexed.png b/game/resources/images/ibuki/ibuki-sheet-7.indexed.png similarity index 100% rename from resources/images/ibuki/ibuki-sheet-7.indexed.png rename to game/resources/images/ibuki/ibuki-sheet-7.indexed.png diff --git a/resources/images/ibuki/ibuki-sheet-8.indexed.png b/game/resources/images/ibuki/ibuki-sheet-8.indexed.png similarity index 100% rename from resources/images/ibuki/ibuki-sheet-8.indexed.png rename to game/resources/images/ibuki/ibuki-sheet-8.indexed.png diff --git a/resources/images/ibuki/ibuki-sheet-9.indexed.png b/game/resources/images/ibuki/ibuki-sheet-9.indexed.png similarity index 100% rename from resources/images/ibuki/ibuki-sheet-9.indexed.png rename to game/resources/images/ibuki/ibuki-sheet-9.indexed.png diff --git a/resources/images/ken/ken-sheet-0.indexed.png b/game/resources/images/ken/ken-sheet-0.indexed.png similarity index 100% rename from resources/images/ken/ken-sheet-0.indexed.png rename to game/resources/images/ken/ken-sheet-0.indexed.png diff --git a/resources/images/ken/ken-sheet-1.indexed.png b/game/resources/images/ken/ken-sheet-1.indexed.png similarity index 100% rename from resources/images/ken/ken-sheet-1.indexed.png rename to game/resources/images/ken/ken-sheet-1.indexed.png diff --git a/resources/images/ken/ken-sheet-2.indexed.png b/game/resources/images/ken/ken-sheet-2.indexed.png similarity index 100% rename from resources/images/ken/ken-sheet-2.indexed.png rename to game/resources/images/ken/ken-sheet-2.indexed.png diff --git a/resources/images/ken/ken-sheet-3.indexed.png b/game/resources/images/ken/ken-sheet-3.indexed.png similarity index 100% rename from resources/images/ken/ken-sheet-3.indexed.png rename to game/resources/images/ken/ken-sheet-3.indexed.png diff --git a/resources/images/ken/ken-sheet-4.indexed.png b/game/resources/images/ken/ken-sheet-4.indexed.png similarity index 100% rename from resources/images/ken/ken-sheet-4.indexed.png rename to game/resources/images/ken/ken-sheet-4.indexed.png diff --git a/resources/images/ken/ken-sheet-5.indexed.png b/game/resources/images/ken/ken-sheet-5.indexed.png similarity index 100% rename from resources/images/ken/ken-sheet-5.indexed.png rename to game/resources/images/ken/ken-sheet-5.indexed.png diff --git a/resources/images/ken/ken-sheet-6.indexed.png b/game/resources/images/ken/ken-sheet-6.indexed.png similarity index 100% rename from resources/images/ken/ken-sheet-6.indexed.png rename to game/resources/images/ken/ken-sheet-6.indexed.png diff --git a/resources/images/megaman_sprites.indexed.png b/game/resources/images/megaman_sprites.indexed.png similarity index 100% rename from resources/images/megaman_sprites.indexed.png rename to game/resources/images/megaman_sprites.indexed.png diff --git a/resources/images/remy/remy-sheet-0.indexed.png b/game/resources/images/remy/remy-sheet-0.indexed.png similarity index 100% rename from resources/images/remy/remy-sheet-0.indexed.png rename to game/resources/images/remy/remy-sheet-0.indexed.png diff --git a/resources/images/remy/remy-sheet-1.indexed.png b/game/resources/images/remy/remy-sheet-1.indexed.png similarity index 100% rename from resources/images/remy/remy-sheet-1.indexed.png rename to game/resources/images/remy/remy-sheet-1.indexed.png diff --git a/resources/images/remy/remy-sheet-2.indexed.png b/game/resources/images/remy/remy-sheet-2.indexed.png similarity index 100% rename from resources/images/remy/remy-sheet-2.indexed.png rename to game/resources/images/remy/remy-sheet-2.indexed.png diff --git a/resources/images/remy/remy-sheet-3.indexed.png b/game/resources/images/remy/remy-sheet-3.indexed.png similarity index 100% rename from resources/images/remy/remy-sheet-3.indexed.png rename to game/resources/images/remy/remy-sheet-3.indexed.png diff --git a/resources/images/remy/remy-sheet-4.indexed.png b/game/resources/images/remy/remy-sheet-4.indexed.png similarity index 100% rename from resources/images/remy/remy-sheet-4.indexed.png rename to game/resources/images/remy/remy-sheet-4.indexed.png diff --git a/resources/images/scott_flag.jpg b/game/resources/images/scott_flag.jpg similarity index 100% rename from resources/images/scott_flag.jpg rename to game/resources/images/scott_flag.jpg diff --git a/resources/images/twelve/twelve-sheet-0.indexed.png b/game/resources/images/twelve/twelve-sheet-0.indexed.png similarity index 100% rename from resources/images/twelve/twelve-sheet-0.indexed.png rename to game/resources/images/twelve/twelve-sheet-0.indexed.png diff --git a/resources/images/twelve/twelve-sheet-1.indexed.png b/game/resources/images/twelve/twelve-sheet-1.indexed.png similarity index 100% rename from resources/images/twelve/twelve-sheet-1.indexed.png rename to game/resources/images/twelve/twelve-sheet-1.indexed.png diff --git a/resources/images/twelve/twelve-sheet-2.indexed.png b/game/resources/images/twelve/twelve-sheet-2.indexed.png similarity index 100% rename from resources/images/twelve/twelve-sheet-2.indexed.png rename to game/resources/images/twelve/twelve-sheet-2.indexed.png diff --git a/resources/images/twelve/twelve-sheet-3.indexed.png b/game/resources/images/twelve/twelve-sheet-3.indexed.png similarity index 100% rename from resources/images/twelve/twelve-sheet-3.indexed.png rename to game/resources/images/twelve/twelve-sheet-3.indexed.png diff --git a/resources/images/twelve/twelve-sheet-4.indexed.png b/game/resources/images/twelve/twelve-sheet-4.indexed.png similarity index 100% rename from resources/images/twelve/twelve-sheet-4.indexed.png rename to game/resources/images/twelve/twelve-sheet-4.indexed.png diff --git a/resources/images/twelve/twelve-sheet-5.indexed.png b/game/resources/images/twelve/twelve-sheet-5.indexed.png similarity index 100% rename from resources/images/twelve/twelve-sheet-5.indexed.png rename to game/resources/images/twelve/twelve-sheet-5.indexed.png diff --git a/resources/images/twelve/twelve-sheet-6.indexed.png b/game/resources/images/twelve/twelve-sheet-6.indexed.png similarity index 100% rename from resources/images/twelve/twelve-sheet-6.indexed.png rename to game/resources/images/twelve/twelve-sheet-6.indexed.png diff --git a/resources/images/twelve/twelve-sheet-7.indexed.png b/game/resources/images/twelve/twelve-sheet-7.indexed.png similarity index 100% rename from resources/images/twelve/twelve-sheet-7.indexed.png rename to game/resources/images/twelve/twelve-sheet-7.indexed.png diff --git a/resources/models/city/scene.bin b/game/resources/models/city/scene.bin similarity index 100% rename from resources/models/city/scene.bin rename to game/resources/models/city/scene.bin diff --git a/resources/models/city/scene.gltf b/game/resources/models/city/scene.gltf similarity index 100% rename from resources/models/city/scene.gltf rename to game/resources/models/city/scene.gltf diff --git a/resources/models/city/textures/Basketball_baseColor.png b/game/resources/models/city/textures/Basketball_baseColor.png similarity index 100% rename from resources/models/city/textures/Basketball_baseColor.png rename to game/resources/models/city/textures/Basketball_baseColor.png diff --git a/resources/models/city/textures/CityProps1GLOW_baseColor.png b/game/resources/models/city/textures/CityProps1GLOW_baseColor.png similarity index 100% rename from resources/models/city/textures/CityProps1GLOW_baseColor.png rename to game/resources/models/city/textures/CityProps1GLOW_baseColor.png diff --git a/resources/models/city/textures/CityProps1GLOW_emissive.png b/game/resources/models/city/textures/CityProps1GLOW_emissive.png similarity index 100% rename from resources/models/city/textures/CityProps1GLOW_emissive.png rename to game/resources/models/city/textures/CityProps1GLOW_emissive.png diff --git a/resources/models/city/textures/CityProps_baseColor.png b/game/resources/models/city/textures/CityProps_baseColor.png similarity index 100% rename from resources/models/city/textures/CityProps_baseColor.png rename to game/resources/models/city/textures/CityProps_baseColor.png diff --git a/resources/models/city/textures/Clinic_baseColor.png b/game/resources/models/city/textures/Clinic_baseColor.png similarity index 100% rename from resources/models/city/textures/Clinic_baseColor.png rename to game/resources/models/city/textures/Clinic_baseColor.png diff --git a/resources/models/city/textures/FillerBuildings1GLOW_baseColor.png b/game/resources/models/city/textures/FillerBuildings1GLOW_baseColor.png similarity index 100% rename from resources/models/city/textures/FillerBuildings1GLOW_baseColor.png rename to game/resources/models/city/textures/FillerBuildings1GLOW_baseColor.png diff --git a/resources/models/city/textures/FillerBuildings1GLOW_emissive.png b/game/resources/models/city/textures/FillerBuildings1GLOW_emissive.png similarity index 100% rename from resources/models/city/textures/FillerBuildings1GLOW_emissive.png rename to game/resources/models/city/textures/FillerBuildings1GLOW_emissive.png diff --git a/resources/models/city/textures/FillerBuildings1_baseColor.png b/game/resources/models/city/textures/FillerBuildings1_baseColor.png similarity index 100% rename from resources/models/city/textures/FillerBuildings1_baseColor.png rename to game/resources/models/city/textures/FillerBuildings1_baseColor.png diff --git a/resources/models/city/textures/FishFactory1GLOW_baseColor.png b/game/resources/models/city/textures/FishFactory1GLOW_baseColor.png similarity index 100% rename from resources/models/city/textures/FishFactory1GLOW_baseColor.png rename to game/resources/models/city/textures/FishFactory1GLOW_baseColor.png diff --git a/resources/models/city/textures/FishFactory1GLOW_emissive.png b/game/resources/models/city/textures/FishFactory1GLOW_emissive.png similarity index 100% rename from resources/models/city/textures/FishFactory1GLOW_emissive.png rename to game/resources/models/city/textures/FishFactory1GLOW_emissive.png diff --git a/resources/models/city/textures/FishFactory_baseColor.png b/game/resources/models/city/textures/FishFactory_baseColor.png similarity index 100% rename from resources/models/city/textures/FishFactory_baseColor.png rename to game/resources/models/city/textures/FishFactory_baseColor.png diff --git a/resources/models/city/textures/LMProjects1GLOW_baseColor.png b/game/resources/models/city/textures/LMProjects1GLOW_baseColor.png similarity index 100% rename from resources/models/city/textures/LMProjects1GLOW_baseColor.png rename to game/resources/models/city/textures/LMProjects1GLOW_baseColor.png diff --git a/resources/models/city/textures/LMProjects1GLOW_emissive.png b/game/resources/models/city/textures/LMProjects1GLOW_emissive.png similarity index 100% rename from resources/models/city/textures/LMProjects1GLOW_emissive.png rename to game/resources/models/city/textures/LMProjects1GLOW_emissive.png diff --git a/resources/models/city/textures/LMProjects_baseColor.png b/game/resources/models/city/textures/LMProjects_baseColor.png similarity index 100% rename from resources/models/city/textures/LMProjects_baseColor.png rename to game/resources/models/city/textures/LMProjects_baseColor.png diff --git a/resources/models/city/textures/Laundrymat_baseColor.png b/game/resources/models/city/textures/Laundrymat_baseColor.png similarity index 100% rename from resources/models/city/textures/Laundrymat_baseColor.png rename to game/resources/models/city/textures/Laundrymat_baseColor.png diff --git a/resources/models/city/textures/Paramount1GLOW_baseColor.png b/game/resources/models/city/textures/Paramount1GLOW_baseColor.png similarity index 100% rename from resources/models/city/textures/Paramount1GLOW_baseColor.png rename to game/resources/models/city/textures/Paramount1GLOW_baseColor.png diff --git a/resources/models/city/textures/Paramount1GLOW_emissive.png b/game/resources/models/city/textures/Paramount1GLOW_emissive.png similarity index 100% rename from resources/models/city/textures/Paramount1GLOW_emissive.png rename to game/resources/models/city/textures/Paramount1GLOW_emissive.png diff --git a/resources/models/city/textures/Paramount_baseColor.png b/game/resources/models/city/textures/Paramount_baseColor.png similarity index 100% rename from resources/models/city/textures/Paramount_baseColor.png rename to game/resources/models/city/textures/Paramount_baseColor.png diff --git a/resources/models/city/textures/Pawnshop1GLOW_baseColor.png b/game/resources/models/city/textures/Pawnshop1GLOW_baseColor.png similarity index 100% rename from resources/models/city/textures/Pawnshop1GLOW_baseColor.png rename to game/resources/models/city/textures/Pawnshop1GLOW_baseColor.png diff --git a/resources/models/city/textures/Pawnshop1GLOW_emissive.png b/game/resources/models/city/textures/Pawnshop1GLOW_emissive.png similarity index 100% rename from resources/models/city/textures/Pawnshop1GLOW_emissive.png rename to game/resources/models/city/textures/Pawnshop1GLOW_emissive.png diff --git a/resources/models/city/textures/Pawnshop_baseColor.png b/game/resources/models/city/textures/Pawnshop_baseColor.png similarity index 100% rename from resources/models/city/textures/Pawnshop_baseColor.png rename to game/resources/models/city/textures/Pawnshop_baseColor.png diff --git a/resources/models/city/textures/RoadsGround_baseColor.png b/game/resources/models/city/textures/RoadsGround_baseColor.png similarity index 100% rename from resources/models/city/textures/RoadsGround_baseColor.png rename to game/resources/models/city/textures/RoadsGround_baseColor.png diff --git a/resources/models/city/textures/Tire_baseColor.png b/game/resources/models/city/textures/Tire_baseColor.png similarity index 100% rename from resources/models/city/textures/Tire_baseColor.png rename to game/resources/models/city/textures/Tire_baseColor.png diff --git a/resources/models/city/textures/elise_baseColor.png b/game/resources/models/city/textures/elise_baseColor.png similarity index 100% rename from resources/models/city/textures/elise_baseColor.png rename to game/resources/models/city/textures/elise_baseColor.png diff --git a/resources/models/city/textures/elise_emissive.png b/game/resources/models/city/textures/elise_emissive.png similarity index 100% rename from resources/models/city/textures/elise_emissive.png rename to game/resources/models/city/textures/elise_emissive.png diff --git a/resources/models/luffy/license.txt b/game/resources/models/luffy/license.txt similarity index 100% rename from resources/models/luffy/license.txt rename to game/resources/models/luffy/license.txt diff --git a/resources/models/luffy/textures/LuffyD_baseColor.png b/game/resources/models/luffy/textures/LuffyD_baseColor.png similarity index 100% rename from resources/models/luffy/textures/LuffyD_baseColor.png rename to game/resources/models/luffy/textures/LuffyD_baseColor.png diff --git a/resources/models/luffy/textures/lambert4_baseColor.png b/game/resources/models/luffy/textures/lambert4_baseColor.png similarity index 100% rename from resources/models/luffy/textures/lambert4_baseColor.png rename to game/resources/models/luffy/textures/lambert4_baseColor.png diff --git a/resources/models/luffy/untitled.bin b/game/resources/models/luffy/untitled.bin similarity index 100% rename from resources/models/luffy/untitled.bin rename to game/resources/models/luffy/untitled.bin diff --git a/resources/models/luffy/untitled.gltf b/game/resources/models/luffy/untitled.gltf similarity index 100% rename from resources/models/luffy/untitled.gltf rename to game/resources/models/luffy/untitled.gltf diff --git a/resources/models/milkyway/scene.bin b/game/resources/models/milkyway/scene.bin similarity index 100% rename from resources/models/milkyway/scene.bin rename to game/resources/models/milkyway/scene.bin diff --git a/resources/models/milkyway/scene.gltf b/game/resources/models/milkyway/scene.gltf similarity index 100% rename from resources/models/milkyway/scene.gltf rename to game/resources/models/milkyway/scene.gltf diff --git a/resources/models/milkyway/textures/lambert1_emissive.jpeg b/game/resources/models/milkyway/textures/lambert1_emissive.jpeg similarity index 100% rename from resources/models/milkyway/textures/lambert1_emissive.jpeg rename to game/resources/models/milkyway/textures/lambert1_emissive.jpeg diff --git a/resources/models/model_sources.txt b/game/resources/models/model_sources.txt similarity index 100% rename from resources/models/model_sources.txt rename to game/resources/models/model_sources.txt diff --git a/resources/models/spiderman/scene.bin b/game/resources/models/spiderman/scene.bin similarity index 100% rename from resources/models/spiderman/scene.bin rename to game/resources/models/spiderman/scene.bin diff --git a/resources/models/spiderman/scene.gltf b/game/resources/models/spiderman/scene.gltf similarity index 100% rename from resources/models/spiderman/scene.gltf rename to game/resources/models/spiderman/scene.gltf diff --git a/resources/models/spiderman/textures/RootNode_baseColor.jpeg b/game/resources/models/spiderman/textures/RootNode_baseColor.jpeg similarity index 100% rename from resources/models/spiderman/textures/RootNode_baseColor.jpeg rename to game/resources/models/spiderman/textures/RootNode_baseColor.jpeg diff --git a/resources/models/spiderman/textures/RootNode_metallicRoughness.png b/game/resources/models/spiderman/textures/RootNode_metallicRoughness.png similarity index 100% rename from resources/models/spiderman/textures/RootNode_metallicRoughness.png rename to game/resources/models/spiderman/textures/RootNode_metallicRoughness.png diff --git a/resources/shaders/grid.frag b/game/resources/shaders/grid.frag similarity index 100% rename from resources/shaders/grid.frag rename to game/resources/shaders/grid.frag diff --git a/resources/shaders/grid.vert b/game/resources/shaders/grid.vert similarity index 100% rename from resources/shaders/grid.vert rename to game/resources/shaders/grid.vert diff --git a/resources/shaders/imgui.frag b/game/resources/shaders/imgui.frag similarity index 100% rename from resources/shaders/imgui.frag rename to game/resources/shaders/imgui.frag diff --git a/resources/shaders/imgui.vert b/game/resources/shaders/imgui.vert similarity index 100% rename from resources/shaders/imgui.vert rename to game/resources/shaders/imgui.vert diff --git a/resources/shaders/msdf.frag b/game/resources/shaders/msdf.frag similarity index 100% rename from resources/shaders/msdf.frag rename to game/resources/shaders/msdf.frag diff --git a/resources/shaders/msdf.vert b/game/resources/shaders/msdf.vert similarity index 100% rename from resources/shaders/msdf.vert rename to game/resources/shaders/msdf.vert diff --git a/resources/shaders/shader.frag b/game/resources/shaders/shader.frag similarity index 100% rename from resources/shaders/shader.frag rename to game/resources/shaders/shader.frag diff --git a/resources/shaders/shader.vert b/game/resources/shaders/shader.vert similarity index 100% rename from resources/shaders/shader.vert rename to game/resources/shaders/shader.vert diff --git a/resources/shaders/sprite.frag b/game/resources/shaders/sprite.frag similarity index 100% rename from resources/shaders/sprite.frag rename to game/resources/shaders/sprite.frag diff --git a/resources/shaders/sprite.vert b/game/resources/shaders/sprite.vert similarity index 100% rename from resources/shaders/sprite.vert rename to game/resources/shaders/sprite.vert diff --git a/resources/shaders/standard.frag b/game/resources/shaders/standard.frag similarity index 100% rename from resources/shaders/standard.frag rename to game/resources/shaders/standard.frag diff --git a/resources/shaders/standard.vert b/game/resources/shaders/standard.vert similarity index 100% rename from resources/shaders/standard.vert rename to game/resources/shaders/standard.vert diff --git a/resources/sprites/alex/alex.toml b/game/resources/sprites/alex/alex.toml similarity index 100% rename from resources/sprites/alex/alex.toml rename to game/resources/sprites/alex/alex.toml diff --git a/resources/sprites/chun-li/chun-li.toml b/game/resources/sprites/chun-li/chun-li.toml similarity index 100% rename from resources/sprites/chun-li/chun-li.toml rename to game/resources/sprites/chun-li/chun-li.toml diff --git a/resources/sprites/dudley/dudley.toml b/game/resources/sprites/dudley/dudley.toml similarity index 100% rename from resources/sprites/dudley/dudley.toml rename to game/resources/sprites/dudley/dudley.toml diff --git a/resources/sprites/hugo/hugo.toml b/game/resources/sprites/hugo/hugo.toml similarity index 100% rename from resources/sprites/hugo/hugo.toml rename to game/resources/sprites/hugo/hugo.toml diff --git a/resources/sprites/ibuki/ibuki.toml b/game/resources/sprites/ibuki/ibuki.toml similarity index 100% rename from resources/sprites/ibuki/ibuki.toml rename to game/resources/sprites/ibuki/ibuki.toml diff --git a/resources/sprites/ken/ken.toml b/game/resources/sprites/ken/ken.toml similarity index 100% rename from resources/sprites/ken/ken.toml rename to game/resources/sprites/ken/ken.toml diff --git a/resources/sprites/remy/remy.toml b/game/resources/sprites/remy/remy.toml similarity index 100% rename from resources/sprites/remy/remy.toml rename to game/resources/sprites/remy/remy.toml diff --git a/resources/sprites/test_sprite.toml b/game/resources/sprites/test_sprite.toml similarity index 100% rename from resources/sprites/test_sprite.toml rename to game/resources/sprites/test_sprite.toml diff --git a/resources/sprites/twelve/twelve.toml b/game/resources/sprites/twelve/twelve.toml similarity index 100% rename from resources/sprites/twelve/twelve.toml rename to game/resources/sprites/twelve/twelve.toml diff --git a/run_with_overlay.sh b/game/run_with_overlay.sh similarity index 100% rename from run_with_overlay.sh rename to game/run_with_overlay.sh diff --git a/src/camera.rs b/game/src/camera.rs similarity index 100% rename from src/camera.rs rename to game/src/camera.rs diff --git a/src/errors.rs b/game/src/errors.rs similarity index 100% rename from src/errors.rs rename to game/src/errors.rs diff --git a/src/game.rs b/game/src/game.rs similarity index 100% rename from src/game.rs rename to game/src/game.rs diff --git a/src/game_clock.rs b/game/src/game_clock.rs similarity index 100% rename from src/game_clock.rs rename to game/src/game_clock.rs diff --git a/src/gltf_loader.rs b/game/src/gltf_loader.rs similarity index 100% rename from src/gltf_loader.rs rename to game/src/gltf_loader.rs diff --git a/src/main.rs b/game/src/main.rs similarity index 99% rename from src/main.rs rename to game/src/main.rs index c9265165256c2956072362cce34f4012b715bbb0..ef71957778887a71b6c7c9113dd0bd0bcbe5c4f8 100644 --- a/src/main.rs +++ b/game/src/main.rs @@ -51,6 +51,7 @@ mod vulkan_model_loader; mod standard_shader; mod sprite_shader; mod sprite_parser; +mod message_processing; // TODO: Create parts of the pipeline based on the model content instead of hardcoding // TODO: Move Vulkan app specific stuff into its own file diff --git a/src/math.rs b/game/src/math.rs similarity index 100% rename from src/math.rs rename to game/src/math.rs diff --git a/game/src/message_processing.rs b/game/src/message_processing.rs new file mode 100644 index 0000000000000000000000000000000000000000..a1eb7f540fdce31e0a3eab15c5dea81a12720df5 --- /dev/null +++ b/game/src/message_processing.rs @@ -0,0 +1,2 @@ + +use common::messages; \ No newline at end of file diff --git a/src/sprite_parser.rs b/game/src/sprite_parser.rs similarity index 100% rename from src/sprite_parser.rs rename to game/src/sprite_parser.rs diff --git a/src/sprite_shader.rs b/game/src/sprite_shader.rs similarity index 100% rename from src/sprite_shader.rs rename to game/src/sprite_shader.rs diff --git a/src/standard_shader.rs b/game/src/standard_shader.rs similarity index 100% rename from src/standard_shader.rs rename to game/src/standard_shader.rs diff --git a/src/string_utils.rs b/game/src/string_utils.rs similarity index 100% rename from src/string_utils.rs rename to game/src/string_utils.rs diff --git a/src/vulkan_asset_manager.rs b/game/src/vulkan_asset_manager.rs similarity index 100% rename from src/vulkan_asset_manager.rs rename to game/src/vulkan_asset_manager.rs diff --git a/src/vulkan_buffers.rs b/game/src/vulkan_buffers.rs similarity index 100% rename from src/vulkan_buffers.rs rename to game/src/vulkan_buffers.rs diff --git a/src/vulkan_context.rs b/game/src/vulkan_context.rs similarity index 100% rename from src/vulkan_context.rs rename to game/src/vulkan_context.rs diff --git a/src/vulkan_devices.rs b/game/src/vulkan_devices.rs similarity index 100% rename from src/vulkan_devices.rs rename to game/src/vulkan_devices.rs diff --git a/src/vulkan_grid.rs b/game/src/vulkan_grid.rs similarity index 100% rename from src/vulkan_grid.rs rename to game/src/vulkan_grid.rs diff --git a/src/vulkan_imgui.rs b/game/src/vulkan_imgui.rs similarity index 100% rename from src/vulkan_imgui.rs rename to game/src/vulkan_imgui.rs diff --git a/src/vulkan_model_loader.rs b/game/src/vulkan_model_loader.rs similarity index 100% rename from src/vulkan_model_loader.rs rename to game/src/vulkan_model_loader.rs diff --git a/src/vulkan_msdf_fonts.rs b/game/src/vulkan_msdf_fonts.rs similarity index 100% rename from src/vulkan_msdf_fonts.rs rename to game/src/vulkan_msdf_fonts.rs diff --git a/src/vulkan_swapchain.rs b/game/src/vulkan_swapchain.rs similarity index 100% rename from src/vulkan_swapchain.rs rename to game/src/vulkan_swapchain.rs diff --git a/src/vulkan_sync_objects.rs b/game/src/vulkan_sync_objects.rs similarity index 100% rename from src/vulkan_sync_objects.rs rename to game/src/vulkan_sync_objects.rs diff --git a/src/vulkan_textures.rs b/game/src/vulkan_textures.rs similarity index 100% rename from src/vulkan_textures.rs rename to game/src/vulkan_textures.rs diff --git a/web_server/Cargo.toml b/web_server/Cargo.toml new file mode 100644 index 0000000000000000000000000000000000000000..4ac7e8ccae0d05d11c0c913ab4a2663568022d17 --- /dev/null +++ b/web_server/Cargo.toml @@ -0,0 +1,20 @@ +[package] +name = "web_server" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +common = { path = "../common" } + +dotenv = "0.15.0" +tokio = { version = "1", features = ["full"] } +axum = "0.4" +sqlx = { version = "0.5.13", features = [ "runtime-tokio-native-tls", "sqlite", "macros", "migrate", "chrono", "uuid" ] } +uuid = { version = "1.0.0", features = ["v4", "serde"] } +chrono = { version = "0.4.19", features = ["serde"] } +rand = "0.8" +serde = { version = "1", features = ["derive"] } +serde_json = "1.0.79" +sailfish = "0.4.0" diff --git a/web_server/Dockerfile b/web_server/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..ff212342d6c4ffd03c14d4695fc42ec3092553f8 --- /dev/null +++ b/web_server/Dockerfile @@ -0,0 +1,16 @@ +# ------------------------------------------------------------------------------ +# Cargo Build Stage +# ------------------------------------------------------------------------------ + +FROM rust:slim-buster as builder +WORKDIR /usr/src/myapp +COPY . . +RUN cargo install --path . + +# ------------------------------------------------------------------------------ +# Final Stage +# ------------------------------------------------------------------------------ +FROM debian:buster-slim +#RUN apt-get update && apt-get install -y extra-runtime-dependencies && rm -rf /var/lib/apt/lists/* +COPY --from=builder /usr/src/myapp/target/release/web_server /usr/local/bin/myapp +CMD ["myapp"] diff --git a/web_server/ReadMe.md b/web_server/ReadMe.md new file mode 100644 index 0000000000000000000000000000000000000000..4db546d2f550ca0a80f301a57d60f716d40cf222 --- /dev/null +++ b/web_server/ReadMe.md @@ -0,0 +1,60 @@ + +# Bounty Server Design + +The goal of this server is to enable people to create charity bounties, view existing +bounties, view various statistics and roll-ups about donations. Ideally, bounty conditions +could be user generated and the server could be used by people other than Rising Tide +Games. However, for proof of concept, predefined conditions can be used and RTG can create +all of them. + +## Questions + +* How would non-game bounties be verified? + * Elon Musk playing with Bill Gates +* How would conditions be handled? + * If the game is beat without taking damage and in less than 10 minutes +* How would custom bounties be defined? + * Skip getting the sword and shield + +# Data + +Each bounty should be comprised of an identifier for the user that created it, the charity +for the payout, the date of creation, and maybe an expiration date. A user might need to +fund the bounty with an initial deposit to prevent spam bounties. Users that sign up for +the bounty will need some way of paying out when the bounty is achieved. This might mean +storing payment information, or contact info for prompting the user to fulfill their +commitment. Another option is charging for the donation when it is filled and keeping +the money in some sort of escrow account for donation or refund. + +# Web Integration + +## General Information + +The website would allow users to see and sort available and past bounties. The user should be able to sort +bounties based on total donations, date of creation, remaining time if there is an expiration, +number of people donating, and the user that created the bounty if they are user created. + +## Leader Boards + +### Users + +* which users have donated the most total dollars +* which users have donated to the most successful bounties + +### Successful Bounties + +* which bounties have reached the highest dollar total +* which bounties have the most users donating + +### Active Bounties + +* which bounties have reached the highest dollar total +* which bounties have the most users donating + +# Game Integration + +The game should have some way of getting the active donations and ideally let the player +know when they are close to achieving one of the bounties along with what is still needed. +When the bounty is fulfilled, the replay should be saved and uploaded for validation. +The player should be able to opt out of this if desired. + diff --git a/web_server/migrations/20220517030409_Empty_database.down.sql b/web_server/migrations/20220517030409_Empty_database.down.sql new file mode 100644 index 0000000000000000000000000000000000000000..3236412474933ec2088a526c5deeb4905f438625 --- /dev/null +++ b/web_server/migrations/20220517030409_Empty_database.down.sql @@ -0,0 +1,3 @@ +-- Add down migration script here +DROP INDEX idx_users_on_id; +drop table users; \ No newline at end of file diff --git a/web_server/migrations/20220517030409_Empty_database.up.sql b/web_server/migrations/20220517030409_Empty_database.up.sql new file mode 100644 index 0000000000000000000000000000000000000000..73cf92a8aa552bfb004ffa9d58d16554fe42d18a --- /dev/null +++ b/web_server/migrations/20220517030409_Empty_database.up.sql @@ -0,0 +1,8 @@ +-- Add up migration script here +CREATE TABLE IF NOT EXISTS users ( + id TEXT PRIMARY KEY NOT NULL, + created_at INTEGER NOT NULL, + username TEXT NOT NULL +); + +CREATE INDEX idx_users_on_id ON users(id, created_at); diff --git a/web_server/src/main.rs b/web_server/src/main.rs new file mode 100644 index 0000000000000000000000000000000000000000..bb02d1550620036821ea953166d887086d7c1dcc --- /dev/null +++ b/web_server/src/main.rs @@ -0,0 +1,164 @@ +use axum::{extract::{Query, Extension}, response::{Html, Json, IntoResponse}, routing::{get, post}, Router}; +use rand::{thread_rng, Rng}; +use serde::{Deserialize, Serialize}; +use std::net::SocketAddr; +use sqlx::sqlite::{SqliteConnectOptions, SqliteJournalMode, SqliteLockingMode, SqlitePoolOptions, SqliteSynchronous}; +use sqlx::{SqlitePool}; +use std::env; +use std::time::Duration; +use std::str::FromStr; +use std::sync::{Arc}; +use tokio::sync::Mutex; +//use chrono::Utc; +use sqlx::types::{chrono::{DateTime, Utc}}; +//use uuid::Uuid; +use sailfish::TemplateOnce; +use common::messages; + +#[derive(sqlx::FromRow, Debug)] +struct User { + id: String, + created_at: i64, + username: String, +} + +#[derive(Debug, TemplateOnce)] +#[template(path="index.html")] +struct UsersTemplate +{ + users: Vec<User> +} + +#[derive(Debug, Clone)] +struct SharedState +{ + db: SqlitePool, + html: Option<String>, + timestamp: DateTime<Utc>, +} + +#[tokio::main] +async fn main() { + //dotenv::dotenv().ok(); + + let db_url = env::var("DATABASE_URL").expect("Failed to get DATABASE_URL env var"); + + let connection_options = SqliteConnectOptions::from_str(&db_url).unwrap() + .create_if_missing(true) + .journal_mode(SqliteJournalMode::Wal) + .synchronous(SqliteSynchronous::Normal) + .locking_mode(SqliteLockingMode::Normal) + .busy_timeout(Duration::from_secs(30)); + + let db = SqlitePoolOptions::new() + .max_connections(8) + .connect_timeout(Duration::from_secs(30)) + .connect_with(connection_options) + .await.expect("Failed to create Sqlite connection pool"); + + sqlx::migrate!().run(&db).await.ok(); + + sqlx::query("pragma temp_store = memory;") + .execute(&db) + .await.ok(); + sqlx::query("pragma mmap_size = 30000000000;") + .execute(&db) + .await.ok(); + sqlx::query("pragma page_size = 4096;") + .execute(&db) + .await.ok(); + + let state = Arc::new(Mutex::new(SharedState { db, html: None, timestamp: Utc::now() })); + + let app = Router::new().route("/", get(static_handler)) + .route("/random", get(random_handler)) + .route("/json", post(post_json_handler).get(get_json_handler)) + .layer(Extension(state)); + + let addr = SocketAddr::from(([0, 0, 0, 0], 3000)); + println!("listening on {}", addr); + axum::Server::bind(&addr) + .serve(app.into_make_service()) + .await + .unwrap(); +} + +// `Deserialize` need be implemented to use with `Query` extractor. +#[derive(Deserialize)] +struct RangeParameters { + start: usize, + end: usize, +} + +#[derive(Deserialize, Serialize, sqlx::FromRow)] +struct JsonParameters { + name: String, + age: usize, +} + +async fn static_handler(Extension(state): Extension<Arc<Mutex<SharedState>>>) -> Html<String> { + let user = User + { + id: uuid::Uuid::new_v4().to_string(), + created_at: Utc::now().timestamp(), + username: String::from("Hello") + }; + + let state_clone = Arc::clone(&state); + let mut state = state_clone.lock().await; + //let state_mut = state.borrow_mut(); + //let state = state.borrow(); + + /* + sqlx::query_as!(User, "insert into users (id, created_at, username) values (?, ?, ?)", + user.id, user.created_at, user.username) + .execute(&state.db) + .await.ok(); + */ + + /* + let today = (Utc::now() - chrono::Duration::seconds(300)).timestamp(); + let users = sqlx::query!(r#"select id, created_at from users where created_at <= ? limit 10"#, today) + .fetch_all(&state.db) + .await.unwrap(); + */ + + let now = Utc::now(); + + if now - state.timestamp > chrono::Duration::seconds(1) || state.html.is_none() + { + ///* + let today = (now - chrono::Duration::seconds(300)).timestamp(); + let users = sqlx::query_as!(User, r#"select id, created_at, username from users where created_at > ? limit 5"#, today) + .fetch_all(&state.db) + .await.unwrap(); + //*/ + + state.timestamp = now; + + let users_context = UsersTemplate { users }; + state.html = Some(users_context.render_once().unwrap()); + } + + let rendered_html = state.html.as_ref().unwrap(); + + Html(rendered_html.to_string()) +} + +async fn random_handler(Query(range): Query<RangeParameters>) -> Html<String> { + // Generate a random number in range parsed from query. + let random_number = thread_rng().gen_range(range.start..range.end); + + // Send response in html format. + Html(format!("<h1>Random Number: {}</h1>", random_number)) +} + +async fn get_json_handler() -> impl IntoResponse { + let json = JsonParameters { name: "Name".to_string(), age: 100 }; + (axum::http::StatusCode::OK, Json(json)) +} + +async fn post_json_handler(Json(parameters): Json<JsonParameters>) -> impl IntoResponse { + let json = JsonParameters { name: parameters.name.to_uppercase(), age: parameters.age + 100 }; + (axum::http::StatusCode::OK, Json(json)) +} \ No newline at end of file diff --git a/web_server/templates/index.html b/web_server/templates/index.html new file mode 100644 index 0000000000000000000000000000000000000000..f3723d24328333c6a848e0b337388415ab141187 --- /dev/null +++ b/web_server/templates/index.html @@ -0,0 +1,10 @@ +<html> +<body> + Users IDs + <ul> + <% for user in &users { + include!("./user.html"); + } %> + </ul> +</body> +</html> diff --git a/web_server/templates/user.html b/web_server/templates/user.html new file mode 100644 index 0000000000000000000000000000000000000000..647cffa2c08904e40477036984fe30bdb1f6dd0f --- /dev/null +++ b/web_server/templates/user.html @@ -0,0 +1 @@ +<li> <%= user.id %> </li>