Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/grype/beacon-server
Beacon server for Pharo utilizes JSON RPC for collecting signals from remote systems.
https://github.com/grype/beacon-server
beacon json-rpc json-rpc-server json-rpc2 logging pharo pharo-smalltalk server smalltalk
Last synced: 19 days ago
JSON representation
Beacon server for Pharo utilizes JSON RPC for collecting signals from remote systems.
- Host: GitHub
- URL: https://github.com/grype/beacon-server
- Owner: grype
- License: mit
- Created: 2019-03-05T06:29:52.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2022-10-07T21:05:29.000Z (over 2 years ago)
- Last Synced: 2024-11-09T20:41:29.452Z (3 months ago)
- Topics: beacon, json-rpc, json-rpc-server, json-rpc2, logging, pharo, pharo-smalltalk, server, smalltalk
- Language: Smalltalk
- Size: 51.8 KB
- Stars: 1
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Beacon-Server
Server for collecting [Beacon](https://github.com/pharo-project/pharo-beacon) signals from remote clients in [Pharo](https://www.pharo.org/).
## Installation
```smalltalk
Metacello new
baseline: 'BeaconServer';
repository: 'github://grype/Beacon-Server';
load.
```## Usage
Create and start an instance of `BeaconServer` and an instance of `SignalLogger`, and you're all set.
```smalltalk
server := BeaconServer new."Start server on port 4000"
server startOn: 4000."Start a logger"
logger := MemoryLogger instance.
logger start.
logger inspect."When done, stop the server"
server stop.
```## How does it work?
`BeaconServer` utilizes a [JRPC](https://github.com/juliendelplanque/JRPC) server for capturing Beacon signals from remote clients in JSON format. It also extends Beacon's existing hierarchy of signals with remote equivalents that capture information about the origin of the signal and provide special handling for things like stack traces. This makes it possible to capture arbitrary signals from other, non-Pharo based clients.