#interaction #customer #seamless #university #rapid #cs #api

bin+lib hermod-api

快速且无缝的客户交互,专为阿拉巴马大学的CS 495设计

3 个版本

0.1.2 2021年10月26日
0.1.1 2021年10月15日
0.1.0 2021年10月15日

#1070数据库接口

MIT 许可证

59KB
1.5K SLoC

Hermod API

一个即时且无缝客户交互的平台。

运行API

依赖关系

Mac/Linux 安装说明

# Install Rust, psql, and Docker
brew install rustup postgres # Install Rustup and psql command line tool 
brew cask install docker # Install Docker

# Build and run application
cargo install sqlx-cli # Install sqlx CLI, used by `init_db.sh` to create & migrate database
./scripts/init_db.sh # Starts and migrates a Postgres database using Docker
./scripts/init_collector.sh # Starts an Open Telemetry collector using Docker
cargo run # Compiles and runs the Hermod project using an edge Rust build (aka cargo r)
其他有用命令
# Install optional Rust command-line utilities
cargo install sqlx-cli # (Optionally) Install sqlx CLI
cargo install bunyan # (Optionally) install Bunyan log formatter

# Other useful commands
cargo doc --open # Compiles and opens project documentation (aka cargo d)
cargo test # Runs unit and integration tests (aka cargo t)

cargo r | bunyan # Compiles and runs the project, piping log output to the Bunyan formatter
TEST_LOG=true cargo t | bunyan # Runs tests with logging, piping output to Bunyan

./scripts/stop_containers.sh # Stops all running Docker containers

sqlx mig add YOUR_MIGRATION_NAME # Create a new sqlx migration
sqlx mig run # Run your new migration
cargo sqlx prepare -- --lib # Rebuild sqlx's cache used for compile-time SQL guarantees
cargo sqlx prepare --check -- --lib

docker build -t hermod_api . # Build the release image of the application (will take a *very* long time, Rust has infamously long release compilation times)
docker run -p 8000:8000 hermod_api # Run the release image of the application

# Print lines-of-code
brew install cloc
cloc configuration src tests migrations scripts

# Open LLVM test coverage report
cargo llvm-cov --open --ignore-filename-regex "build.rs|src\/main.rs"

# Run GCC test coverage report
cargo tarpaullin

# Raise port limit on macOS
ulimit -n 10000

项目架构

  • configurations 包含三个文件 - base.yaml、local.yaml 和 production.yaml。base.yaml 包含本地和生产环境之间共享的默认配置,而本地和生产指定了在不同环境中不同的配置设置。
  • migrations 包含在Hermod数据库中按顺序执行以产生模式的SQL文件。这可以通过运行 sqlx migrate run 完成。
  • scripts 包含用于本地环境设置的构建工具。
  • src 包含应用程序源代码。
  • tests 包含依赖测试。
  • .env 包含sqlx的数据库URL环境变量。
  • Cargo.toml 包含包元数据和依赖项。
  • Dockerfile 包含构建此项目Docker镜像的说明。
  • sqlx-data.json 包含用于表示Hermod数据库模式的用于构建Hermod时不可用数据库连接的数据。

依赖关系

~36–51MB
~1M SLoC