Skip to content

An implementation of the APL language to the TMC test system

License

Notifications You must be signed in to change notification settings

APLMOOC/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 by providing functionality such as downloading exercises, running tests and submitting them. A CLI wrapper is provided 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. Documentation is automatically built and deployed when creating a GitHub release.

Additional documentation for other aspects of TMC such as configuration file formats is included in the docs directory.

Included projects

tmc-langs-cli

A "frontend" for tmc-langs. A binary CLI client for TMC-langs for IDEs. Intended to be used programmatically, for a CLI meant for manual use see tmc-cli-rust.

bindings/tmc-langs-node

Bindings for using tmc-langs from Node.js.

tmc-langs

The "backend". A library that provides a convenient API for implementing different frontends. A frontend (such as a CLI) should only depend on this library. The other libraries are considered internal.

tmc-client

A library that abstracts over different TMC backends.

tmc-testmycode-client

A library for communicating with the TestMyCode TMC server.

tmc-mooc-client

A library for communicating with the mooc.fi TMC server.

tmc-langs-framework

A library for creating language plugins.

tmc-langs-plugins

A library that provides a convenient API abstracting over all the different language plugins.

tmc-langs-util

A utility library that contains various kinds of useful functionality for other projects.

plugins/csharp

A TMC plugin for C#.

plugins/java

TMC plugins for Maven and Ant projects.

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.

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 x86 (x86_64-apple-darwin)
  • MacOS M1 (aarch64-apple-darwin)
  • ARM64 (aarch64-unknown-linux-gnu)
  • Armv7 (armv7-unknown-linux-gnueabihf)

A musl (x86_64-unknown-linux-musl) build is also available, but it does not support Java exercises. This is because the Java support relies on dynamically linking libjvm, which is not supported by the musl build.

Contributing

See CONTRIBUTING.

License

Licensed under either of

at your option.

About

An implementation of the APL language to the TMC test system

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 80.2%
  • C 6.0%
  • Python 4.9%
  • R 4.0%
  • TypeScript 1.9%
  • JavaScript 0.8%
  • Other 2.2%