{
  "schema": "tesign-radar/item/1",
  "generated_at": "2026-09-21T05:13:49.792Z",
  "lang": "ko",
  "slug": "ruffle",
  "url": "https://tesign.com/item/ruffle/",
  "alternates": {
    "ko": {
      "html": "https://tesign.com/item/ruffle/",
      "json": "https://tesign.com/item/ruffle/index.json",
      "markdown": "https://tesign.com/item/ruffle/index.md"
    },
    "en": {
      "html": "https://tesign.com/en/item/ruffle/",
      "json": "https://tesign.com/en/item/ruffle/index.json",
      "markdown": "https://tesign.com/en/item/ruffle/index.md"
    }
  },
  "name": "Ruffle",
  "use_label": "플래시 다시 보기",
  "one_liner": "사라진 플래시 게임과 애니메이션을 지금 브라우저에서 다시 돌려 주는 재생기.",
  "text": {
    "why": "어도비가 플래시를 끝내면서 20년치 게임·애니메이션·교육 자료가 한꺼번에 열리지 않게 됐다. Ruffle은 플래시 플레이어를 러스트로 새로 구현해 같은 SWF 파일을 브라우저에서 다시 돌린다. 어도비 코드를 가져다 쓴 것이 아니라 처음부터 다시 만든 것이다.",
    "take": "옛 파일을 변환하거나 다시 만들 필요 없이 그대로 연다는 점이 크다. 창고에 남은 플래시 자료가 있다면 먼저 하나 열어 보면 된다.",
    "build": [
      "러스트로 만들었고 웹에서는 WebAssembly로 돌아간다. 웹 데모에서 파일을 고르면 바로 재생되고, 데스크톱 앱·브라우저 확장·홈페이지에 붙이는 웹 버전이 따로 있다. ActionScript 1·2·3을 상당 부분 지원하며 안드로이드 빌드도 저장소에 있다."
    ],
    "who": [
      {
        "role": "예전에 만든 플래시 교육 자료나 홍보물을 다시 써야 하는 곳, 옛 게임을 다시 해 보고 싶은 사람.",
        "situation": null
      }
    ],
    "start": [
      {
        "command": false,
        "text": "ruffle.rs의 데모 페이지를 열고 \"Select File\"로 SWF 파일을 하나 골라 본다."
      }
    ],
    "caveat": [
      "아직 완성이 아니라고 저장소가 직접 밝히고 있어, 복잡한 ActionScript 3 작품은 제대로 돌지 않을 수 있다. 라이선스는 Apache-2.0과 MIT 중 골라 쓰는 방식이다."
    ]
  },
  "cta": {
    "type": "try",
    "label": "TRY",
    "url": "https://ruffle.rs/"
  },
  "ready": "browser",
  "categories": [
    "games",
    "media"
  ],
  "categories_confirmed": true,
  "tags": [
    "플래시",
    "에뮬레이터",
    "옛 자료",
    "브라우저"
  ],
  "platform": [
    "web",
    "windows",
    "macos",
    "linux"
  ],
  "license": {
    "spdx": null,
    "scope": "unknown",
    "scope_text": "미확인 — 쓰기 전에 살펴보세요.",
    "url": "https://github.com/ruffle-rs/ruffle?tab=License-1-ov-file",
    "note": null,
    "open_source": null
  },
  "language": "Rust",
  "source_urls": {
    "canonical": "https://ruffle.rs/",
    "github": "https://github.com/ruffle-rs/ruffle",
    "huggingface": null,
    "app_store": null,
    "sightings": [
      {
        "source": "github",
        "url": "https://github.com/ruffle-rs/ruffle",
        "posted_at": "2026-09-15T02:00:00.000Z",
        "hn_url": null
      }
    ]
  },
  "numbers": {
    "as_of": "2026-09-21T00:00:00.000Z",
    "stars": 18561,
    "stars_unit": "GitHub stars",
    "stars_checked_at": "2026-09-15T10:14:28.400Z",
    "stars_observed_since_check": 0,
    "star_delta_24h": null,
    "star_delta_7d": 5,
    "star_delta_30d": 5,
    "star_delta_unit": "GitHub stars gained in the window, GH Archive events summed to as_of",
    "spark_14d": [
      null,
      null,
      null,
      null,
      null,
      null,
      null,
      5,
      null,
      null,
      null,
      null,
      null,
      null
    ],
    "hf_likes": null,
    "hf_likes_observed_at": null,
    "hn_points": null,
    "hn_points_observed_at": null,
    "store": null,
    "method": "별 총합 = GitHub에서 마지막으로 확인한 값(stars_checked_at) + 그 뒤 GH Archive에서 관측한 증가. 24h·7d·30d 증가는 GH Archive 시간별 이벤트를 기준 시각(as_of)까지 합한 값. 우리 점수는 없습니다."
  },
  "ranks": {
    "as_of": "2026-09-21T00:00:00.000Z",
    "all_time": null,
    "rising": {
      "24h": null,
      "7d": null,
      "30d": null
    },
    "categories": [
      {
        "category": "media",
        "label": "미디어",
        "rank": 9
      },
      {
        "category": "games",
        "label": "게임",
        "rank": 2
      }
    ]
  },
  "activity": {
    "pushed_at": "2026-09-15T00:15:03.000Z",
    "owner_type": null,
    "open_issues": null,
    "contributors": null,
    "releases_count": null,
    "latest_release": null,
    "checked_at": null,
    "core_checked_at": "2026-09-15T10:14:28.400Z"
  },
  "signals": [],
  "images": {
    "og": "https://tesign.com/img/ruffle-a2c7a562ed.png",
    "cover": "https://tesign.com/img/ruffle-a2c7a562ed.png",
    "cover_width": 2400,
    "cover_height": 1260,
    "gallery": [
      "https://tesign.com/img/ruffle-a2c7a562ed.png",
      "https://tesign.com/img/ruffle-917750df76.png"
    ],
    "alt": "Ruffle 웹 데모 화면. 위쪽에 파일 선택 줄이 있고 가운데에 플래시로 만든 Ruffle 로고 애니메이션이 재생되고 있다.",
    "tier": 1
  },
  "dates": {
    "first_seen_at": "2026-09-15T09:20:09.163Z",
    "source_created_at": "2019-04-25T17:53:32.000Z",
    "discovery_hours": 64791.44365638889,
    "launch_signal_at": "2026-09-15T02:00:00.000Z",
    "kept_at": "2026-09-21T05:13:34.491Z",
    "first_published_at": "2026-09-21T05:13:34.733Z",
    "updated_at": "2026-09-21T05:13:34.594Z",
    "ingestion_mode": "live"
  },
  "notes": [
    "이 파일은 tesign.com 항목 페이지와 같은 빌드에서 같은 데이터로 만들어졌습니다. 소개 글은 편집자가 쓴 것이고, 숫자는 저장된 관측값입니다.",
    "JSON의 null은 관측하지 않았다는 뜻입니다 — 0이 아닙니다. 마크다운에서는 [확인 필요]로 적습니다.",
    "별 총합 = GitHub에서 마지막으로 확인한 값(stars_checked_at) + 그 뒤 GH Archive에서 관측한 증가. 24h·7d·30d 증가는 GH Archive 시간별 이벤트를 기준 시각(as_of)까지 합한 값. 우리 점수는 없습니다.",
    "요약이며 법적 조언이 아닙니다."
  ]
}
