Skip to main content

Nintendo SARC archive reader and writer

Project description

Nintendo SARC archive reader and writer


Install Python 3.6+ (64 bit version) then run pip install sarc.

List files in an archive

sarc list ARCHIVE

Extract an archive

sarc extract ARCHIVE

Create an archive

sarc create [--be] FILES_TO_ADD  DEST_SARC

You can give it directories too, in which case the entire directory will be added to the archive recursively.

Pass --be (shorthand: -b) if you want sarc to use big endian mode (for the Wii U).

An important option is --base-path. This option lets you remove parts of the path. For example, if you pass a path like Mods/BotW/System/Version.txt, you will likely want to pass --base-path Mods/BotW to get rid of the leading components.

If only a single directory is passed, the base path is set for you automatically.

So typical usage example:

sarc create  ~/botw/Bootup/  ~/botw/ModifiedBootup.pack

Update an archive


This is almost identical to create.

By default, sarc will keep the endianness of the original archive. You can override this with --endian {le,be} (le for little and be for big endian).

Delete files from an archive


Nothing much to say here. Just keep in mind FILES_TO_DELETE takes archive paths (those that are printed by list).

Library usage

import sarc

archive = sarc.read_file_and_make_sarc(file)
# or if you already have a buffer
archive = sarc.SARC(archive_bytes)
if archive:
    for file_name in archive.list_files():
        size = archive.get_file_size(file_name)
        data = archive.get_file_data(file_name)

To modify an archive:

import sarc

writer = sarc.make_writer_from_sarc(archive)
# or if you're reading from a file
writer = sarc.read_sarc_and_make_writer(file)
# or for a blank archive
writer = sarc.SARCWriter(be=big_endian)

writer.add_file('test.bfevfl', b'file contents')
writer.add_file('another_file.txt', b'file contents')
writer.add_file('test.bfevfl', b'replacing a file')



For more information, please look at


This software is licensed under the terms of the GNU General Public License, version 2 or later.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release. See tutorial on generating distribution archives.

Built Distribution

sarc-2.0.4-py3-none-any.whl (19.3 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page