init repo

This commit is contained in:
Reid 2023-08-25 22:48:32 -07:00
commit bc4c3b4621
Signed by: reidlab
GPG key ID: 6C9EAA3364F962C8
12 changed files with 1652 additions and 0 deletions

1
.env.example Normal file
View file

@ -0,0 +1 @@
DATABASE_URL=postgres://username:password@localhost/diesel_demo

2
.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
/target
.env

1540
Cargo.lock generated Normal file

File diff suppressed because it is too large Load diff

10
Cargo.toml Normal file
View file

@ -0,0 +1,10 @@
[package]
name = "gdps-server"
version = "0.0.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
diesel = { version = "=2.1.0", features = ["postgres"] }
rocket = "=0.5.0-rc.3"

9
diesel.toml Normal file
View file

@ -0,0 +1,9 @@
# For documentation on how to configure this file,
# see https://diesel.rs/guides/configuring-diesel-cli
[print_schema]
file = "src/schema.rs"
custom_type_derives = ["diesel::query_builder::QueryId"]
[migrations_directory]
dir = "migrations"

0
migrations/.keep Normal file
View file

View file

@ -0,0 +1,6 @@
-- This file was automatically created by Diesel to setup helper functions
-- and other internal bookkeeping. This file is safe to edit, any future
-- changes will be added to existing projects as new migrations.
DROP FUNCTION IF EXISTS diesel_manage_updated_at(_tbl regclass);
DROP FUNCTION IF EXISTS diesel_set_updated_at();

View file

@ -0,0 +1,36 @@
-- This file was automatically created by Diesel to setup helper functions
-- and other internal bookkeeping. This file is safe to edit, any future
-- changes will be added to existing projects as new migrations.
-- Sets up a trigger for the given table to automatically set a column called
-- `updated_at` whenever the row is modified (unless `updated_at` was included
-- in the modified columns)
--
-- # Example
--
-- ```sql
-- CREATE TABLE users (id SERIAL PRIMARY KEY, updated_at TIMESTAMP NOT NULL DEFAULT NOW());
--
-- SELECT diesel_manage_updated_at('users');
-- ```
CREATE OR REPLACE FUNCTION diesel_manage_updated_at(_tbl regclass) RETURNS VOID AS $$
BEGIN
EXECUTE format('CREATE TRIGGER set_updated_at BEFORE UPDATE ON %s
FOR EACH ROW EXECUTE PROCEDURE diesel_set_updated_at()', _tbl);
END;
$$ LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION diesel_set_updated_at() RETURNS trigger AS $$
BEGIN
IF (
NEW IS DISTINCT FROM OLD AND
NEW.updated_at IS NOT DISTINCT FROM OLD.updated_at
) THEN
NEW.updated_at := current_timestamp;
END IF;
RETURN NEW;
END;
$$ LANGUAGE plpgsql;

33
readme.md Normal file
View file

@ -0,0 +1,33 @@
# gdps-server
a [Geometry Dash](https://store.steampowered.com/app/322170/Geometry_Dash/) server reimplementation in [Rust](https://rust-lang.org), focusing on 1:1 recreations of vanilla GD features
_this project is on hold until the release of 2.2 (october 2023) due to the possibly huge api changes coming up_
## why?
i've run out of ideas.
### features
_these features are not yet implemented_
- utilizes `yt-dlp` and `ffmpeg` to let you upload custom songs from sources such as [YouTube](https://youtube.com), [SoundCloud](https://soundcloud.com), and [1800+ other sources](https://github.com/yt-dlp/yt-dlp/blob/master/supportedsites.md)
- admin control panels
_these features are implemented_
- none muhuhhahaha
## build
### migrating databases
- run `cargo install diesel_cli --no-default-features --features postgres`
- run `diesel migration run`
### testing
- run `cargo run`
### building
- run `cargo build`

13
src/main.rs Normal file
View file

@ -0,0 +1,13 @@
#![feature(decl_macro)]
#[macro_use] extern crate rocket;
#[get("/")]
fn index() -> String {
return String::from("index | coming soon to a localhost:8000 near u");
}
#[launch]
fn rocket() -> _ {
rocket::build().mount("/", routes![index])
}

2
src/schema.rs Normal file
View file

@ -0,0 +1,2 @@
// @generated automatically by Diesel CLI.

0
supported.md Normal file
View file