Metadata-Version: 2.4
Name: nest-server
Version: 3.0.0b2
Summary: A Python-based API server for the NEST Simulator
Keywords: NEST,simulation,spiking neuronal networks
Author: Sebastian Spreizer, Jochen Eppler, Dennis Terhorst
License-File: LICENSE
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Education
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Mathematics
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Dist: flask>=3.1
Requires-Dist: flask-cors>=6.0
Requires-Dist: gunicorn>=26.2
Requires-Dist: nest-simulator>=3.10
Requires-Dist: restrictedpython>=8.5
Requires-Dist: docopt>=0.6 ; extra == 'mpi'
Requires-Dist: mpi4py>=4.1 ; extra == 'mpi'
Maintainer: Sebastian Spreizer
Maintainer-email: Sebastian Spreizer <spreizer@web.de>
Requires-Python: >=3.10
Project-URL: homepage, https://github.com/nest/nest-server
Project-URL: repository, https://github.com/nest/nest-server
Project-URL: documentation, https://nest-simulator.readthedocs.io
Provides-Extra: mpi
Description-Content-Type: text/markdown

# NEST Server -- A Python-based API server for the NEST Simulator

This repository contains a REST-based interface to talk to the [NEST Simulator](http://nest-simulator.org).

### Quick start

Install NEST Server with pip

```
pip install nest-server
```

Start NEST Server

```
nest-server start
```

### Command options

Entering `nest-server` without sub-command prints the documentation:

```
usage: nest-server [-d] [-h HOST] [-o] [-p PORT] [-t TIMEOUT] [-w WORKERS] {log,pid,start,stop,version}

A Python-based API server for NEST Simulator

positional arguments:
  {log,pid,start,stop,version}

options:
  -d, --daemon          daemonize the server process
  -h, --host HOST       use hostname/IP address <HOST> for the server [default: 127.0.0.1]
  -o, --outputs         print NEST outputs to the console
  -p, --port PORT       use port <PORT> for opening the socket [default: 52425]
  -t, --timeout TIMEOUT
                        workers silent for more than this many seconds are killed and restarted [default: 30]
  -w, --workers WORKERS
                        the number of worker processes for handling requests [default: 1]
```

### Default environment variables

```
# nest-server
NEST_SERVER_DAEMON=false
NEST_SERVER_HOST="127.0.0.1"
NEST_SERVER_LOGFILE="/tmp/nest-server.log"
NEST_SERVER_PIDFILE="/tmp/nest-server.pid"
NEST_SERVER_PORT=52425
NEST_SERVER_STDOUT=false
NEST_SERVER_TIMEOUT=30
NEST_SERVER_WORKERS=1

# main.py
NEST_SERVER_ACCESS_TOKEN=""
NEST_SERVER_DISABLE_AUTH=false
NEST_SERVER_DISABLE_RESTRICTION=false
NEST_SERVER_CORS_ORIGINS="http://localhost:*,http://127.0.0.1:*"
NEST_SERVER_ENABLE_EXEC_CALL=false
NEST_SERVER_MODULES="import nest"
```

### Development mode

We recommend to use virtual environment, e.g. with `uv`:

Install `nest-server` as an editable package

```
uv pip install -e .
```

Run nest-server

```
uv run nest-server start
```

### References

- [Documentation](https://nest-simulator.readthedocs.io/en/latest/interface_nest/nest_server.html)
- [NEST Simulator](http://nest-simulator.org) via its REST-based interface
