Wat is het SWC-bestandsformaat?
Een .swc-bestand is een gecompileerde ActionScript-componentenbibliotheek die wordt gebruikt door de Adobe Flash- en Flex-ontwikkelingsecosystemen. De naam staat voor ShockWave Component. Tijdens het bouwen koppelen de Flex SDK-compilers mxmlc (applicatiecompiler) en compc (componentencompiler) .swc-bibliotheken aan de uiteindelijke SWF-applicatie, waarbij de vooraf gecompileerde bytecode en assets die ze bevatten worden ingesloten.
Structureel is een .swc een standaard ZIP-archief dat minimaal twee items bevat: catalog.xml, waarin de ActionScript-klassen, hun afhankelijkheden en wijzigingstijdstippen staan vermeld, en library.swf, een vooraf gecompileerde SWF met geëxporteerde symbolen, bytecode en ingesloten assets. Door .swc te hernoemen naar .zip en dit uit te pakken, wordt deze inhoud direct zichtbaar.
Het formaat ontstond met Macromedia Flash MX in 2002 en werd de standaard distributie-eenheid voor herbruikbare ActionScript 3-bibliotheken en UI-componenten onder Adobe Flex (Flash Builder) en Apache Flex.
Het gehele SWC-ecosysteem is nu verouderd:
- Adobe Flash Player bereikte het einde van zijn levensduur op 31 december 2020; Adobe blokkeerde de runtime vanaf 12 januari 2021
- Adobe Flash Builder is stopgezet
- Adobe Animate (de opvolger van Flash) richt zich op HTML5 Canvas, niet op SWF
- Apache Flex SDK bevindt zich alleen nog in onderhoudsmodus (laatste release 4.16.1, 2017)
- De Ruffle-emulator (
ruffle.rs) speelt sommige oude SWF-bestanden af, maar heeft hiaten in de ActionScript 3-ondersteuning
Moderne JavaScript/TypeScript npm-pakketten vervullen nu de rol die .swc-bibliotheken ooit hadden.
Beveiliging & veiligheid
RISICO: LOWEen SWC is een bibliotheek voor ontwikkelaars die tijdens het compileren wordt gebruikt, niet tijdens runtime door eindgebruikers. Het kan niet zelfstandig worden uitgevoerd en bevat geen zelfuitvoerende code buiten de Flash/Flex-toolchain. De library.swf binnenin zou echter theoretisch kwaadaardige ActionScript kunnen bevatten als de SWC van een onbetrouwbare bron komt. In de praktijk vormen SWC-bestanden van onbekende bronnen een minimaal risico omdat de Flash-plugin die ze zou uitvoeren niet meer bestaat; alleen ontwikkelaars die Flash/AIR-apps bouwen, koppelen nog SWC-bestanden.
Formaatdetails
in een notendop- Spine 2D-animatie runtime-bibliotheek - Spine (Esoteric Software) gebruikt .swc voor zijn runtime-bibliotheek die wordt gedistribueerd naar Flash/Flex-ontwikkelaars; dezelfde ZIP-container, andere inhoud.
Programma's die SWC-bestanden openen
Technische details
diepe specificaties| Containerformaat | ZIP-archief (PKZIP); magic bytes 50 4B 03 04 op offset 0 |
| Vereiste inhoud | catalog.xml (klassenmanifest) en library.swf (vooraf gecompileerde SWF met bytecode en assets) |
| Compiler-tools | compc (componentencompiler) en mxmlc (applicatiecompiler) uit de Flex/Apache Flex SDK |
| ActionScript VM | AVM1 (ActionScript 2) of AVM2 (ActionScript 3) bytecode binnen library.swf |
| Compressie | DEFLATE per ZIP-item; geen compressie op pakketniveau |
| Typische bestandsgrootte | 20 KB - 5 MB (van kleine hulpbibliotheek tot grote componentenbibliotheek) |
| Checksum | ZIP CRC-32 per item; geen handtekening op pakketniveau |
| Optionele inhoud | META-INF/ metadatatiemap, default.css stylesheet, extra asset-mappen |
| Catalogus-metadata | Flex SDK-versie en wijzigingsdata van klassen ingebed in catalog.xml |
| Besturingssysteem | Windows, macOS, Linux (Apache Flex/AIR SDK cross-platform) |
| Inspectiemethode | Hernoem .swc naar .zip en pak uit met een ZIP-tool om catalog.xml en library.swf te bekijken |
| Veroudering | Flash Player einde levensduur 31 dec 2020; Flash Builder stopgezet; Apache Flex alleen in onderhoud |
| Uitgebracht | 2002 (Macromedia Flash MX; SWC concept expanded in Flash 8 / Flex SDK 1.0 ~2004-2005) |
| Laatste versie | Flash/Flex SDK era ended; Apache Flex SDK 4.16.1 (2017) is the last meaningful release |
| Specificatie | help.adobe.com |
SWC conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over SWC-bestanden.