Skip to content

A library and CLI for supporting different programming languages in the TestMyCode programming assignment evaluator.

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

rage/tmc-langs-rust

Repository files navigation

Framework for supporting different programming languages in TMC.

TMC-langs provides an interface that encapsulates everything needed to support a new language in TMC. The framework provides CLI wrappers so that it's fairly convenient to call from other languages like Ruby.

Documentation

Documentation for the latest release is available at https://rage.github.io/tmc-langs-rust

Building

Install Rust according to https://www.rust-lang.org/tools/install

git clone git@github.com:rage/tmc-langs-rust.git
cd tmc-langs-rust
cargo build

Testing

cargo test

Running the CLI

cargo run -p tmc-langs-cli help

Development

Format using cargo fmt, use cargo clippy for linting.

Deployment

Documentation and binaries for the supported targets are built and deployed to Google Cloud when creating a GitHub release. Each binary uses the release tag as a version number in the filename, for example tmc-langs-cli-x86_64-unknown-linux-gnu-0.1.5-alpha for the release 0.1.5-alpha.

Supported targets

  • Linux 64-bit (x86_64-unknown-linux-gnu)
  • Linux 32-bit (i686-unknown-linux-gnu)
  • Windows MSVC 64-bit (x86_64-pc-windows-msvc)
  • Windows MSVC 32-bit (i686-pc-windows-msvc)
  • MacOS 64-bit (x86_64-apple-darwin)
  • ARM64 (aarch64-unknown-linux-gnu)
  • Armv7 (armv7-unknown-linux-gnueabihf)

Included projects

tmc-langs-cli

A binary CLI interface for TMC-langs for IDEs.

tmc-langs-core

A library for communicating with the TMC server.

tmc-langs-framework

A library for creating language plugins.

tmc-langs-util

A library that provides a convenient interface abstracting over all available language plugins.

plugins/csharp

A TMC plugin for C#.

plugins/java

A TMC plugin for Java. Supports Maven and Ant.

plugins/make

A TMC plugin for Make.

plugins/notests

A TMC plugin for projects with no tests.

plugins/python3

A TMC plugin for Python 3.

plugins/r

A TMC plugin for R.

About

A library and CLI for supporting different programming languages in the TestMyCode programming assignment evaluator.

Topics

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Packages

No packages published

Contributors 8