All Projects → arclanguage → Anarki

arclanguage / Anarki

Licence: other
Community-managed fork of the Arc dialect of Lisp; for commit privileges submit a pull request.

Programming Languages

lisp
113 projects
arc
50 projects

Projects that are alternatives of or similar to Anarki

Spck Issues
Spck Editor Issues
Stars: ✭ 35 (-96.71%)
Mutual labels:  webapp
Whalesong
Whalesong is an asyncio python library to manage WebApps remotely. Currently WhatsappWeb is implemented
Stars: ✭ 46 (-95.68%)
Mutual labels:  webapp
Fclub
Vue全家桶+Koa+mongoose全栈开发的单页应用 http://wap.fulun.club
Stars: ✭ 49 (-95.4%)
Mutual labels:  webapp
Seven23
Fully manual budget app to track personal expenses. 100% opensource, with privacy by design.
Stars: ✭ 36 (-96.62%)
Mutual labels:  webapp
Ihealth app
App front-end of iHealth project ( a medical WebApp based on mui )
Stars: ✭ 41 (-96.15%)
Mutual labels:  webapp
Company Structure
A company structure with a list of projects and their users
Stars: ✭ 48 (-95.49%)
Mutual labels:  webapp
Pymap webapp
A webapp version for Raster Map Download Helper
Stars: ✭ 34 (-96.81%)
Mutual labels:  webapp
Aioli
Framework for building fast genomics web tools with WebAssembly and WebWorkers
Stars: ✭ 51 (-95.21%)
Mutual labels:  webapp
Vaxic
Node HTTP server framework
Stars: ✭ 45 (-95.77%)
Mutual labels:  webapp
Milky
A .NET Standard library for pentesting web apps against credential stuffing attacks.
Stars: ✭ 49 (-95.4%)
Mutual labels:  webapp
Generator Fountain Webapp
Yeoman 'fountain' generator to start a webapp
Stars: ✭ 985 (-7.51%)
Mutual labels:  webapp
Notify.uno
Get notified when your command is done
Stars: ✭ 38 (-96.43%)
Mutual labels:  webapp
Django Todolist
exemplary django application - small to do list web app
Stars: ✭ 47 (-95.59%)
Mutual labels:  webapp
Wire Webapp
👽 Wire for web
Stars: ✭ 982 (-7.79%)
Mutual labels:  webapp
Go Web Backend
Dockerized backend services for web application
Stars: ✭ 50 (-95.31%)
Mutual labels:  webapp
Cryptii
Web app and framework offering modular conversion, encoding and encryption
Stars: ✭ 971 (-8.83%)
Mutual labels:  webapp
Start Fastapi
a lightweight web framework based on fastapi
Stars: ✭ 48 (-95.49%)
Mutual labels:  webapp
Vue Bridge Webview
javascript bridge android/ios webview
Stars: ✭ 52 (-95.12%)
Mutual labels:  webapp
Wifi Of House
A simple web application which allows you to share your WiFi credentials instantly with your friends and family. Built using Python, Flask and Bootstrap.
Stars: ✭ 51 (-95.21%)
Mutual labels:  webapp
Csswand
🎨✨ Hover your wand and use your magic spell to copy beautiful css
Stars: ✭ 1,046 (-1.78%)
Mutual labels:  webapp

Anarki Travis build

A publicly modifiable 'wiki-like' fork of Arc Lisp

The intention is to be extremely permissive in accepting patches. For commit privileges, just submit your first pull request or ask on Arc Language Forum.

Getting started

Installation

First install Racket (v7.7 or later), then

$ raco pkg install sha
$ git clone http://github.com/arclanguage/anarki
$ cd anarki
$ ./arc.sh    # start the interactive repl
$ cd apps/news
$ ./run-news  # or start News (also with the repl)

Tutorial

If you're new to Arc, or Lisp in general, a good starting point is the Tutorial.

Documentation and help

If you run into trouble, check

News Site

Anarki comes bundled with News, a Hacker News style app.

Admins

To run News, first pick your (the admin's) username,

$ cd anarki/apps/news
$ mkdir www
$ echo __username__ > www/admins

You can have multiple admins. Add them all to www/admins, separated by whitespace.

Starting the server

Warning: If you are already running a News site, migrating to this fork might mess up your site's data. Come talk to us first, and be sure to make a backup before the migration.

Now bring up the server,

$ ./run-news

There'll be a pause while the server loads up, with some messages, then you'll see the arc> prompt.

Go to http://localhost:8080. Click on login, and create the account for your username. You should now be logged in as an admin.

(Don't worry about user break or error writing messages.)

Customization

To customize News, change the variables at the top of apps/news/news.arc. To change the port your server runs at, modify apps/news/run-news.arc.

Any interactive changes to the prompt will be reflected immediately in the server, without needing to restart it. Hence if you make any changes to apps/news/news.arc, you can load them, by typing (load "apps/news/news.arc") in the repl. If you stop the server or it dies for some reason, previously entered commands are available in the command history (at least if you have Readline installed).

HTTPS

You may want to serve News securely over HTTPS. An example configuration for running Nginx with SSL as a reverse proxy for News can be found in anarki/extras/news.nginx.conf.

Resetting passwords

For password reset mails to be sent out, your must set up an email account to send these from,

$ echo "[email protected]" > www/app-email  ; email
$ echo "smtp.example.com" >> www/app-email     ; smtp server
$ echo "[email protected]" >> www/app-email  ; user
$ echo "1234" >> www/app-email                 ; password

Development

Tests

Anarki has thorough automated tests.

# start in the anarki directory
$ ./arc.sh
arc> (load "tests.arc")

Anarki is explicitly not constrained to maintain compatibility with upstream releases, and compatibility status may swing wildly from commit to commit depending on who takes an interest. To see a list of what's different, type (incompatibilities) at the repl. If you make an incompatible change, please update this list.

Anybody is welcome to make changes to Anarki, but please make sure the tests continue to pass. Since we rely on the unit-test.arc test harness, please also run its tests before committing any changes:

$ ./arc.sh (require 'lib/unit-test.arc/unit-test.arc) (load "unit-test.arc/tests.arc") (test-and-error-on-failure)

Racket interop

Racket expressions can be evaluated with the ($ ...) syntax. For instance, (($ crypto-random-bytes) 16) obtains the crypto-random-bytes function from Racket and makes a call to it.

If you write lots of Racket code and you just want to use Anarki for part of a bigger project, you can raco pkg install anarki and use Anarki to write Racket modules:

#lang anarki
(:provide function-for-use-in-racket)

(= racket-import ($.dynamic-require ...))
(load "relative/path.arc")

(def utility-for-use-in-racket (x)
  (* x (racket-import x))

Scope

Note that Anarki does not have private module scopes; the (:provide ...) section is just there to make it easy to require an Anarki-based library from Racket.

Keyword arguments

Anarki has some issues passing keyword arguments to Racket functions, but Racket's keyword-apply can be used for that.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].