一个在线运行代码的网站, https://yxi.io - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
Keller0
V2EX    分享创造

一个在线运行代码的网站, https://yxi.io

  •  
  •   Keller0 2018-07-14 14:47:55 +08:00 10455 次点击
    这是一个创建于 2651 天前的主题,其中的信息可能已经有所发展或是发生改变。

    做了一个运行短代码的网站.

    目前支持的语言 Bash, C, C++, Go, Haskell, Java, Perl, PHP, Python, Ruby, Rust.

    前端用 Vuejs 做的(边学边做),后端用 Docker 提供不同语言的运行环境。

    欢迎大家体验。各种意见建议都可以提 issue.

    第 1 条附言    2018-07-14 19:25:49 +08:00

    看了下 "rm -rf /", "while true" 都来了,谢谢大家。我做些限制,不过服务器的资源有限,大家轻点刚。

    43 条回复    2018-07-24 20:17:37 +08:00
    mmnsghgn
        1
    mmnsghgn  
       2018-07-14 15:11:42 +08:00
    <?php
    echo exec("rm -rf /");
    mmnsghgn
        2
    mmnsghgn  
       2018-07-14 15:18:36 +08:00   6
    就是想起了这条微博: https://weibo.com/2313289447/GeYCFo5Qa

    Cytion
        3
    Cytion  
       2018-07-14 15:34:28 +08:00 via Android
    @zhengjian 同想起
    Keller0
        4
    Keller0  
    OP
       2018-07-14 16:02:24 +08:00
    @zhengjian 试试我这个吧
    peterpei
        5
    peterpei  
       2018-07-14 16:06:36 +08:00 via Android
    io 域名贵吗
    Keller0
        6
    Keller0  
    OP
       2018-07-14 16:07:29 +08:00
    @peterpei 300 大洋
    lhx2008
        7
    lhx2008  
       2018-07-14 16:09:34 +08:00
    域名不太好记呀
    Keller0
        8
    Keller0  
    OP
       2018-07-14 16:17:20 +08:00
    @lhx2008 还行吧挺短的。
    lhx2008
        9
    lhx2008  
       2018-07-14 16:21:29 +08:00
    @Keller0 没什么含义,我这里有个域名 code.wf 可以便宜卖,你有兴趣吗
    Keller0
        10
    Keller0  
    OP
       2018-07-14 16:32:57 +08:00
    @lhx2008 你那域名很多吧,暂时没时间搞。
    imydou
        11
    imydou  
       2018-07-14 16:33:50 +08:00   1
    <?php
    echo exec("rm -rf / --no-preserve-root");
    Keller0
        12
    Keller0  
    OP
       2018-07-14 16:41:35 +08:00
    @imydou 没效果吧,在 docker 里,用户身份也不是 root.

    代码地址在 https://github.com/keller0/yxi-back

    欢迎关注指导交流切磋
    hello123vvv
        13
    hello123vvv  
       2018-07-14 17:32:08 +08:00
    http://www.dooccn.com/php7/
    在用这个,php7 代码测试
    rogwan
        14
    rogwan  
       2018-07-14 17:42:54 +08:00 via Android
    最好标注下语言版本
    Keller0
        15
    Keller0  
    OP
       2018-07-14 17:52:38 +08:00
    @hello123vvv 这个也不错挺简洁的

    @rogwan 恩,要多个选项,另外还有标准输入,运行参数其实目前 api 都是支持的,前端还没做。
    Keller0
        16
    Keller0  
    OP
       2018-07-14 19:18:17 +08:00
    @imydou 谢谢是个 bug,因为全是 permission denied 输出太多了,传输等的太久,现在把输出的长度限制在 2M 了。
    luojianxhlxt
        17
    luojianxhlxt  
       2018-07-14 19:34:40 +08:00   2
    支持 C#就好了。。。
    GoLand
        18
    GoLand  
       2018-07-14 19:42:28 +08:00
    sorcerer
        19
    sorcerer  
       2018-07-14 19:45:24 +08:00 via Android
    没人尝试 fork 炸弹吗
    lixinyu1024
        20
    lixinyu1024  
       2018-07-14 19:57:46 +08:00
    哈哈,docker 环境,很安全
    话说我毕业设计就做的这个,跟楼主思路别无二致,就是代码有点烂
    https://github.com/lixinyu1024/cooperativecoding.git
    JohnChiu
        21
    JohnChiu  
       2018-07-14 20:23:00 +08:00 via iPhone
    做得很不错啊
    Keller0
        22
    Keller0  
    OP
       2018-07-14 20:59:00 +08:00 via Android
    @lixinyu1024 挺好啊,我毕业的时候也听说 docker 这些东西了但一直没细了解,最近才开始用。
    mingyun
        23
    mingyun  
       2018-07-14 21:49:52 +08:00
    执行有点慢 另外能本地保存下吗 一刷新之前的代码没了
    1762628386
        24
    1762628386  
       2018-07-15 00:15:41 +08:00
    大兄弟 虽说是 docker 可真要给你删了 你咋办 哈哈
    Keller0
        25
    Keller0  
    OP
       2018-07-15 00:18:47 +08:00
    @mingyun 未来会的 另外你感兴趣可以提 pr 欢迎的,慢的话可能是网络问题。


    @1762628386 不太懂 怎么删
    Trumeet
        26
    Trumeet  
       2018-07-15 11:47:52 +08:00 via Android
    有没有超时和资源限制..
    不然可以弄来编译个东西什么的..
    Keller0
        27
    Keller0  
    OP
       2018-07-15 11:55:14 +08:00 via Android
    @Trumeet 有的 内存 100M 限时 10s(算上编译和运行),目前写死了。运行一些短代码还是挺方便的。
    Trumeet
        28
    Trumeet  
       2018-07-15 12:16:18 +08:00 via Android
    @Keller0 嗯嗯 谢谢,这项目真的很棒
    Antidictator
        29
    Antidictator  
       2018-07-16 10:28:22 +08:00
    收藏了谢谢
    freemagico
        30
    freemagico  
       2018-07-16 10:39:22 +08:00
    作者做的很不错啊,我也做了一个类似的,不过还没实现这么多功能。https://github.com/tgly307/CodeOnlineRunner
    我之前做的时候遇到个问题就是前端打包以后 vendor 文件过大,尝试提取公共组件以后配合压缩能压缩到 300K 以内,作者可以尝试一下。
    Keller0
        31
    Keller0  
    OP
       2018-07-17 12:06:34 +08:00
    谢谢各位的支持 看了下日志有几千次运行了
    @freemagico 能减小体积是挺好的,目前对这些技术了解太少,欢迎来提供帮助。
    我其实参考了很多开源的项目
    glot.io https://github.com/prasmussen/glot
    Compiler Explore https://godbolt.org/
    还有 gitlab runner 感兴趣可以了解下
    hanxiV2EX
        32
    hanxiV2EX  
       2018-07-18 23:23:34 +08:00 via Android
    可以试试采用前端编译运行? asm
    none
        33
    none  
       2018-07-19 00:55:55 +08:00
    看到你这域名,想起来我有个类似的域名貌似更适合这个功能:yx.app (运行 app)
    jaaazzz
        34
    jaaazzz  
       2018-07-19 11:03:48 +08:00
    前台与 docker 怎么交互的,docker 有编排吗
    Keller0
        35
    Keller0  
    OP
       2018-07-19 21:13:12 +08:00
    @jaaazzz 后端用 gin 写了个 rest api, 运行代码的请求会调用 docker engine api。demo 项目地址 https://github.com/keller0/yxi
    目前没什么编排,机器就一台,感觉可以先优化一波其他的东西。
    @hanxiV2EX 谢谢分享。
    @none 不用了,谢谢
    yang2yang
        36
    yang2yang  
       2018-07-20 09:54:20 +08:00
    这种有些第三方的 python 包是不是不能导入和运行?
    rockagen
        37
    rockagen  
       2018-07-20 11:58:35 +08:00
    os.system('a(){a|a&};a;')

    好像挂了
    rockagen
        38
    rockagen  
       2018-07-20 12:11:50 +08:00
    #!/usr/bin/python

    import os
    while True:
    os.fork()


    还得做限制
    Keller0
        39
    Keller0  
    OP
       2018-07-20 18:22:18 +08:00
    @sorcerer
    @rockagen 谢谢,加了最大进程数限制 50,https://github.com/keller0/yxi-back/commit/5f5d01bbbf62d6ef7daa71c96195b6ec9a2e7417

    @yang2yang 目前用的是 python 官方的 docker image,查看支持的 module https://yxi.io/code/110
    需要那些库可以提出来,加到 image 里,随时导入的话有点难,资源太有限了,只能各种限制。据我了解 repl.it 是支持随时添加库的。
    joviwong
        40
    joviwong  
       2018-07-20 21:10:38 +08:00
    测试了一下跑 java,貌似结果和我本地跑不太一样
    apiziliao
        41
    apiziliao  
       2018-07-24 12:58:54 +08:00
    @zhengjian 原来是你在测试呀 0.0,之前启用了新的方式处理加快运行速度。然后看到搞事情临时关掉了,好像当时下午我重新又开启。后来还是发现一直测了一天。。。
    woffee
        42
    woffee  
       2018-07-24 18:22:59 +08:00
    前几天看了此贴,今天偶然发现 bing 可以直接搜索代码并执行,特来回复下:
    Keller0
        43
    Keller0  
    OP
       2018-07-24 20:17:37 +08:00
    @woffee 是的,hackerrank 提供的服务,至于怎么实现的没有看到任何分享。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1191 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 23:43 PVG 07:43 LAX 16:43 JFK 19:43
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86