Overview

Let’s try a3m.

https://github.com/artefactual-labs/a3m

a3m is described as follows.

a3m is a lightweight version of Archivematica focused on AIP creation. It has neither external dependencies, integration with access sytems, search capabilities nor a graphical interface.

Differences from Archivematica

The following is also quoted from the documentation.

The main differentiator is the lack of service dependencies. a3m does not depend on Gearman or external workers, MySQL, Elasticsearch or Nginx. a3m provides its own API server based on the gRPC stack and all processing is performed via system threads and spawned child processes. An embedded database based on SQLite is used to store temporary processing state.

Installation

Refer to the following.

https://a3m.readthedocs.io/en/latest/installation.html

We’ll use Docker. I created the following docker-compose.yml.

sneeratav3w3imipnomecdmoer-xe:ar-t-kntsgtwsee:es7oa:tr::0r3wn0kmoag0s-rlh::nk:c7e:r0tt.0wri0ouore/kartefactual-labs/a3m:latest

Then, run the following in the same folder where docker-compose.yml is located to start it up.

ddoocckkeerrnceotmwpoorskecurpea-tdea3m-network

Creating an AIP

Proceed by referring to the following.

https://a3m.readthedocs.io/en/latest/usage.html

My understanding may be incomplete, but it seems possible to run on the server or use it from a client.

For details, please check the following.

https://a3m.readthedocs.io/en/latest/overview.html#architecture

Running on the Server

First, install the library.

pipinstalla3m

Then, run as follows.

a3m/a3m/examples-name="server"

The following output was produced.

APIrPoc2e2s6sfi0ncg78c-oem7p7l9e-t4e4dc6s-ubccc8ees-s1f7u4l1l4yf!008241isbeinggenerated...

Checking the Processing directory, a 7z file had been created.

lsser~/e.rl-o2c2a6lf/0sch7a8r-ee/7a739m-/4s4hca6r-eb/cc8oem-p1l7e4t1e4df/008241.7z

Using from a Client

First, install the library.

pspyoituphrocinens-tmvaelvnlevn/ab3imnv/eancvtivate

Then, specify the address argument and the files to process via URL.

The server domain is assumed to be example.org here. Also, an image from Irasutoya is used.

a3m-address=example.org:7000-name="client"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5x8DUwBVjGR2IkVozOhVoe1zMnzIrcemz4s8xMsHR1gP8mV809urM_03Et8VWHxlGHXy1Vo2UD6x1z7SUVtVik0d0wCW37bbAIb1q7WOlKdyRiwpDkJiONBKEvgPdJFJFRTwGNMMeGUbW/s691/baby_role_towel_utsubuse.png

Similarly, the following was output and saved on the server.

APIrPoc8efs2sci0n8gc7c-o1mapel0e-t4e2df5s-u9cacee2s-s2f9u0l8lbyc!7fac54isbeinggenerated...

Using from Python

By doing the following, you can create an AIP in the same way as with the CLI.

ifs#ccrmreheporCa=somvrnreenC=untaraelra3_tliclmgmaee.=er.d=ns"=psdatuh"cerng(btcrercmtlvsuphipiesncatsere.n(:n.=nin/trcne/-p'rslbpceye)ly.xpco"catug,lmergipdeeel_rnecc.t.hhgoaaoirnnomgnngp:eelo7ller0(ut0ss0eeC'rrlvcieoernn_ttaedndtr.ecsosm)/img/b/R29vZ2xl/AVvXsEi5x8DUwBVjGR2IkVozOhVoe1zMnzIrcemz4s8xMsHR1gP8mV809urM_03Et8VWHxlGHXy1Vo2UD6x1z7SUVtVik0d0wCW37bbAIb1q7WOlKdyRiwpDkJiONBKEvgPdJFJFRTwGNMMeGUbW/s691/baby_role_towel_utsubuse.png",

Furthermore, the processing results could be retrieved as follows.

ddoocckkeerrnceotmwpoorskecurpea-tdea3m-network

0

ddoocckkeerrnceotmwpoorskecurpea-tdea3m-network

1

Discussion

ProcessingConfig

As described in the following, Archivematica required preparing an XML-based configuration file in advance. On the other hand, a3m allows you to submit the configuration as part of transfer requests. This seems to improve flexibility in AIP creation.

https://a3m.readthedocs.io/en/latest/usage.html#processing-configuration

https://buf.build/artefactual/a3m/docs/main:a3m.api.transferservice.v1beta1#a3m.api.transferservice.v1beta1.ProcessingConfig

Regarding Usage

Since this tool is still under development, I felt it might be difficult to start using it just yet. However, as a tool that enables simpler AIP creation, I look forward to its future development.

Summary

I hope this serves as a useful reference.