同步操作将从 aeiouaeiouaeiouaeiouaeiouaeiou/riju 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
Riju is a very fast online playground for every programming language. In less than a second, you can start playing with a Python interpreter or compiling INTERCAL code.
Check out the live application!
You should not write any sensitive code on Riju, as NO GUARANTEES are made about the security or privacy of your data. (No warranty etc etc.)
This project is a work in progress, and I don't intend on thoroughly documenting it until it has reached feature-completeness.
I aspire for Riju to support more languages than any reasonable person could conceivably think is reasonable. That said, there are some requirements:
--privileged
flag, which has unacceptable security drawbacks; see
#29). Note, however,
that many Windows-based languages can be used successfully via
Mono or
Wine, such as
Cmd,
C#,
and Visual Basic.Here are some explicit non-requirements:
If you'd like to request a new language, head to the language support meta-issue and add a comment. Of course, if you actually want it to be added anytime soon, you should submit a pull request :)
To run the webserver, all you need is Yarn. Just run yarn install
as
usual to install dependencies. For production, it's:
$ yarn backend |- or run all three with 'yarn build'
$ yarn frontend |
$ yarn system |
$ yarn server
For development with file watching and automatic server rebooting and all that, it's:
$ yarn backend-dev |- or run all four with 'yarn dev'
$ yarn frontend-dev |
$ yarn system-dev |
$ yarn server-dev |
The webserver listens on localhost:6119
. Now, although the server
itself will work, the only languages that will work are the ones that
happen to be installed on your machine. (I'm sure you can find a few
that are already.) Also, sandboxing using UNIX filesystem permissions
will be disabled, because that requires root privileges. If you want
to test with all the languages plus sandboxing (or you're working on
adding a new language), then you need to use Docker. Running the app
is exactly the same as before, you just have to jump into the
container first:
$ make docker
Note that building the image typically requires over an hour and 20 GB of disk space, and it is only growing.
The above command generates the development image as a subroutine. You can skip this and use the last tagged development image:
$ make docker-nobuild
Or you can explicitly build the image without running it:
$ make image-dev
The production image is based on the development one, with some additional layers. You can build it as follows:
$ make image-prod
Lastly I should mention the tests. There are integration tests for every language, and they can be run as follows:
$ [CONCURRENCY=2] [TIMEOUT_FACTOR=1] yarn test [<filter>...]
Filters can be for language (python
, java
) or test type (hello
,
lsp
). You can comma-delimit multiple filters to do a disjunction,
and space-delimit them to do a conjunction (yarn test hello python,java
for the hello
tests for python
and java
).
The tests are run automatically when building the production image, and fail the build if they fail.
See also riju-cdn.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。