Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

github.com/MattSScott/basePlatformSOMAS/v2

Package Overview
Dependencies
Alerts
File Explorer
Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

github.com/MattSScott/basePlatformSOMAS/v2

  • v2.1.0
  • Source
  • Go
  • Socket score

Version published
Created
Source

basePlatformSOMAS

Contributors Issues MIT License

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Contributing
  5. License
  6. Contact
  7. Acknowledgments

About The Project

basePlatformSOMAS is a generic 'base platform', in the form of a package, used to simplify the development of a self-organising, multi-agent system (SOMAS). This package provides a set of core 'building block' components:

  • A 'base server' - an extensible server object for managing the environmental gamestate and regulating the internal state of...
  • A 'base agent' - an extensible (multi-)agent object that can be injected into the server for simulation, and abstracts the core functions for agent-to-agent interactions through...
  • A 'base message' - an extensible messaging component that helps to define a common language for multi-agent communication.

These building blocks come with 1. an interface definition for defining the core functions required for an operational multi-agent system and 2. the building block object itself, to provide a base implementation of these core functions, and allow extension.

For example, the IServer interface contains a set of functions that all servers in any multi-agent system must perform (the ability to add or remove agents, say), and the BaseServer object will give a base implementation of these methods.

It is then left to the user of this package to define an ExtendedServer which adds all of the relevant functionality for their multi-agent scenario, while composing the BaseServer to get access to the methods provided by this package.

(back to top)

Getting Started

To begin working with basePlatformSOMAS, follow these simple example steps.

Prerequisites

This package is entirely build in GoLang (go). Your machine therefore needs a golang compiler installed. The relevant download link can be found here.

Golang

Since we have defined this repository as a package, it must be included in an existing go project. As such, you should be initialising a go repository in a folder of your choice with:

go mod init <your-module-name>

Installation

With a working go repository, you can now include our package:

go get github.com/MattSScott/basePlatformSOMAS/v2

and, for peace of mind, tidy the imports:

go mod tidy

(back to top)

Usage

You will now have access to the modules provided by this package:

  • The server module can be imported into a file with: github.com/MattSScott/basePlatformSOMAS/v2/pkg/server
  • The agent module can be imported into a file with: github.com/MattSScott/basePlatformSOMAS/v2/pkg/agent
  • The message module can be imported into a file with: github.com/MattSScott/basePlatformSOMAS/v2/pkg/message

For more examples, and a much, much more detailed write-up of the package, please refer to the User Manual or, if you're using an outdated version of the package, refer to the Past Manuals.

(back to top)

Contributing

basePlatformSOMAS is an open source project made for SOMAS programmers, by SOMAS programmers. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this package better, please fork the repo and create a pull request. If you would rather leave the implementation of this suggestion to us, you can also simply open an issue with the tag "enhancement".

To make a pull request in a helpful way:

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Distributed under the MIT License. See LICENSE.txt for more information.

(back to top)

Contact

Matthew Scott - matthew.scott18@imperial.ac.uk

(back to top)

Acknowledgments

This work was produced by the following developers:

(back to top)

FAQs

Package last updated on 22 Oct 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc