Fuseki main is a packaging of Fuseki as a triple store without a UI for administration.
Fuseki can be run in the background by an application as an embedded server. The application can safely work with the dataset directly from java while having Fuseki provide SPARQL access over HTTP. An embedded server is useful for adding functionality around a triple store and also for development and testing.
The main server does not depend on any files on disk (other than for databases provided by the application), and does not provide the Fuseki UI or admins functions to create dataset via HTTP.
See also Data Access Control for Fuseki.
Running as a configured deployment or development server
The artifact org.apache.jena:jena-fuseki-server
is a packaging of
the “main” server that runs from the command line. Unlike the UI
Fuseki server, it is only configured from the command line and has no
persistent work area on-disk.
java -jar jena-fuseki-server-$VER.jar --help
The arguments are the same as the full UI server command line program. There are no special environment variables.
The entry point is org.apache.jena.fuseki.main.cmds.FusekiMainCmd
so
the server can also be run as:
java -cp jena-fuseki-server-$VER.jar:...OtherJars... \
org.apache.jena.fuseki.main.cmds.FusekiMainCmd ARGS
Docker
A kit to build a container with docker or docker compose
https://repo1.maven.org/maven2/org/apache/jena/jena-fuseki-docker/
Note: take care that databases are on mounted volumes if they are to persist after the container is removed.
See the Fuseki docker tools page for details.
Running as an embedded server
Fuseki can be run from inside an Java application to provide SPARQL services to application data. The application can continue to access and update the datasets served by the server.
To build and start the server:
Dataset ds = ...
FusekiServer server = FusekiServer.create()
.add("/dataset", ds)
.build() ;
server.start() ;
See Fuseki embedded documentation for details and examples.