iznik-server-go

command module
v0.0.0-...-f622bb2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 30, 2024 License: GPL-2.0 Imports: 14 Imported by: 0

README

Iznik Server Go

Iznik is a platform for online reuse of unwanted items. This is a work-in-progress implementation of a server in Go.

What this is for

The aim is to provide fast read-only access, so that we can:

  • Render pages significantly faster than when using the PHP server. Language wars are dull, but Go is faster, and the easy parallelisation which goroutines offer make it possible to reduce the latency of individual calls dramatically.
  • Reduce the CPU load on our limited server hardware. Most Freegle workload is read operations, and Go is much lighter on CPU than PHP.

So although having two servers in different languages is an niffy architecture smell, the nifty practical benefits are huge.

What this is not for

These are out of scope:

  • Access to data which is private to moderators.
  • Write-access or any kind of actions. Did I mention this is purely aimed at the read case?

Those things are done using the PHP API. For that reason the CircleCI testing for this server installs the PHP server code to set up a test environment.

Status

This is a WIP.

What works:

  • Groups
  • Messages
  • Users
  • Addresses

What doesn't work:

  • Forcing login at appropriate points.
  • Chat (getting there)
  • Settings
  • ChitChat
  • Stories
  • Volunteer Ops
  • Stats

Funding

The development has been funded by Freegle for use in the UK, but it is an open source platform which can be used or adapted by others.

It would be very lovely if you sponsored us.

❤ Sponsor

License

This code is licensed under the GPL v2 (see LICENSE file). If you intend to use it, Freegle would be interested to hear about it; you can mail [email protected].

CircleCI

Coverage Status

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL