• Stars
    star
    383
  • Rank 111,995 (Top 3 %)
  • Language
    Nim
  • License
    Other
  • Created over 14 years ago
  • Updated over 6 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

IDE/Advanced text editor mainly focusing on support for the Nim programming language.

Aporia

Note: As of 2018 Aporia is considered obsolete. Most of the Nim community has switched to VS Code instead. Feel free to use Aporia, but know that it may not be maintained anymore.

Aporia is an IDE for the Nim programming language. Aporia uses GTK as the default toolkit, and the gtksourceview for the text editor component.

Aporia on Windows 7

Aporia on Mac OS X

Installing

The method by which Aporia can be installed depends on your platform. The following installation instructions are valid as of version 0.4.1 of Aporia.

Windows

No windows binaries available right now I'm afraid. Sorry!

You can install Aporia via the Nimble package manager, take a look at the Linux/BSD installation instructions to see how this can be done. Keep in mind that you will need to also install Aporia's dependencies manually if you install Aporia this way. The dependencies are listed below under the #dependencies section.

Mac OS X

As of version 0.4.0 Aporia now offers very good Mac OS X support. The releases page contains a zipped archive to an Aporia app bundle, which you can download and begin using immediately!

For your convenience, here is the app bundle for Aporia v0.4.0: https://github.com/nim-lang/Aporia/releases/download/v0.4.0/Aporia_0.4.0_MacOSX.zip

Linux/BSD

Some Linux/BSD distributions may package Aporia so make sure to search for it using your favourite package manager. For example, AUR offers an aporia-git package.

In most cases, you will need to compile and install Aporia manually. The easiest way to do so is using Nimble. First, if you haven't already done so, install Nimble. The instructions for doing so can be found here.

Once Nimble is installed, you can install Aporia by executing the following in a terminal:

nimble install aporia

This will download the latest Aporia release, compile it and install it to ~/.nimble/pkgs/ and ~/.nimble/bin/aporia. You can then execute Aporia by executing ~/.nimble/bin/aporia from your terminal. You can add ~/.nimble/bin to your $PATH to make the execution easier.

If Aporia fails to start with an error similar to the following:

could not load: libgtk2.so

Then you will need to use your Linux/BSD distribution's package manager to install Aporia's dependencies. These include gtk2, gtksourceview (version 2, not 3), and pcre. More information about these can be found in the #dependencies section.

Compiling

To compile Aporia you need the latest version of the nim compiler, preferably the unstable release from github. Aporia sometimes relies on bug fixes which have not yet made it to a stable release.

To build Aporia execute nimble build in its directory. To build and install Aporia execute nimble install in its directory.

You can also quickly install it using nimble without the need to clone this repo yourself, just execute nimble install aporia@#head.

Note: You also need to install some dependencies for Aporia to run. The section below explains this in more detail.

Assuming that all dependencies are installed and you installed Nimble properly, you will be able to launch Aporia by executing aporia in the terminal.

Compiling from C sources

If you do not want to get the nim compiler you can still compile Aporia from the generated C sources, it's as simple as executing the build.sh script (or build.bat on Windows). You can then also use install.sh to install Aporia.

Dependencies

Aporia depends on the following libraries. You may already have those installed especially if you are on Linux.

  • GTK (version 2!)
  • GtkSourceView (any version compatible with GTK2)
  • PCRE

Windows

Warning: If you are on a 64bit version of Windows you must not compile Aporia using a 64 bit version of Nim. This is because there are no 64 bit GTK+ binaries available, see discussion here.

GTK+

If you already have GTK+ on your system, you don't need to do anything. Just make sure GTK+ is in your PATH.

If you don't have GTK+ installed then you need to install it. You can get the latest version from here. Make sure that the installer adds GTK+ to the PATH.

GtkSourceView

The GtkSourceView doesn't have an installer, however binaries are available from here (these are 32 bit only!). Just pick the latest version and download the archive then copy the files/folders in the archive into the 'bin' directory in gtk's directory (Most likely: C:\Program Files\GTK2-Runtime\bin).

libxml2-2

GtkSourceView depends on libxml2-2. This should be downloaded from here (these are 32 bit only!). And the contents of it should be copied the same 'bin' directory as GtkSourceView above. The zip you are looking for is usually called libxml2_2.X.X-1_win32.zip

pcre

The dll for this can be found in nim's repo, in the "dist" directory. Just copy it into aporia's directory or somewhere into your PATH.

Microsoft Visual C++ 2010 Redistributable Package (optional)

If you are experiencing a MSVC100.dll cannot be found then you may need to install the Microsoft Visual C++ 2010 Redistributable Package, this can be downloaded from here (win64)

Linux

Use your package manager to install the dependencies (gtk2, gtksourceview and PCRE).

Mac OS X

The easiest way to get Aporia running on Mac OS X is by installing its dependencies using Homebrew.

$ brew install gtk gtksourceview

To get a nice OS X theme you will also need the GTK Quartz engine. The best one to get is from TingPing/homebrew-gnome.

$ brew tap TingPing/gnome
$ brew install --HEAD gtk-quartz-engine

To use the Quartz engine you must also define the following environment variables.

export GTK_DATA_PREFIX=/usr/local
export GTK_EXE_PREFIX=/usr/local
export GTK2_RC_FILES=$(nimble path aporia | tail -n 1)/share/themes/Quartz/gtk-2.0/gtkrc

You can put those in your .bash_rc file or similar to make it system-wide.

For El Capitan Mac OSX

brew tap homebrew/dupes
brew install libiconv
cd /usr/local/lib/
sudo ln -s libgdk-quartz-2.0.dylib libgdk-x11-2.0.dylib
sudo ln -s libgtk-quartz-2.0.dylib libgtk-x11-2.0.dylib

Note: For this to work you must have Aporia installed via Nimble.

If running aporia now tells you about a missing dynamic library, dependencies might have changed and you could need to brew install another package (tell us this is broken by creating an issue and we will update the documentation).

Assuming that you have set everything up correctly, you should see an Aporia window that looks like this:

Aporia on Mac OS X

More Repositories

1

jester

A sinatra-like web framework for Nim.
Nim
1,569
star
2

choosenim

Tool for easily installing and managing multiple versions of the Nim programming language.
Nim
682
star
3

nimkernel

A small kernel written in Nim
Nim
615
star
4

httpbeast

A highly performant, multi-threaded HTTP 1.1 server written in Nim.
Nim
447
star
5

snake

A little snake game in Nim
Nim
207
star
6

nim-in-action-code

Nim in Action code samples
Nim
197
star
7

deauther

An interactive command-line deauther for macOS.
Nim
72
star
8

nim-opencv

Nim OpenCV wrapper
Nim
55
star
9

ipsumgenera

Static blog generator written in Nim
Nim
51
star
10

webdriver

Nim
46
star
11

gamelight

A set of simple modules for writing 2D games targeting JS/Android/iOS in Nim.
Nim
41
star
12

SimpleIRC

IRC Library for Haskell
Haskell
36
star
13

nimbox

Fork of https://notabug.org/vktec/nimbox
Nim
30
star
14

untar

Nim library for decompressing tar.gz files.
Nim
29
star
15

nael

Stack-based language similar to Factor.
Nim
26
star
16

prometheus

Prometheus instrumentation library for Nim
Nim
26
star
17

irc

Nim IRC module
Nim
22
star
18

binary_size

Shell
21
star
19

notifications

A small library for displaying notifications
Nim
17
star
20

pycloud

Experimental Pyodide fork which works in Cloudflare Workers
JavaScript
15
star
21

gbemulator

GameBoy emulator written in Nim
Nim
15
star
22

ElysiaBot

Modular Haskell IRC Bot
Haskell
12
star
23

nimbuild

Nim's build farm
Nim
12
star
24

sass

Nim bindings to the libsass C++ library
Nim
12
star
25

texttospeech

A Nim client for the Google Cloud Text to Speech API.
Nim
11
star
26

osinfo

Modules providing information about the OS for Nim
Nim
10
star
27

nim-jsonrpc

Nim
9
star
28

webasmio

A prototype library for selectively compiling Nim functions into Web Assembly
Nim
9
star
29

aoc2019

Advent of Code 2019 in Nim
Nim
7
star
30

analytics

A Google Analytics reporting library for Nim
Nim
7
star
31

tictactoe-rs

Tic Tac Toe in Rust
Rust
6
star
32

chirper.picheta.me

Browser extension which integrates Mastodon with Twitter.
HTML
6
star
33

xchat-exaile-script

A script which announces the currently played song in exaile. For xchat.
Python
5
star
34

stock_notifier

Nim
4
star
35

pwned

A client for the Pwned passwords API.
Nim
4
star
36

GeneticAlgorithms

Genetic algorithm experiments
Python
3
star
37

andromeda

ogame clone written in haskell
3
star
38

nyx

Old Python GTK IRC Client
Python
3
star
39

pb

Simple command line pastebin app.
Haskell
3
star
40

c4hbot

An IRC bot which lets you play Card Against Humanity. Written in Nim.
Nim
3
star
41

DynreckIRC

Lightweight, efficient and fast Python IRC Library
Python
2
star
42

vec

Nim
2
star
43

nim-urbanterror

Nimrod module for communicating with Urban Terror servers over UDP.
Nim
2
star
44

ld43

Nim
2
star
45

ld40

Nim
2
star
46

geckodriver-travis

Barebones example showing how to test a Jester app on Travis with Gecko driver.
Nim
2
star
47

MDSBot

Modular IRC Bot made in Python
Python
2
star
48

himari

My crappy toy OS
C
2
star
49

radiotap

Nim
2
star
50

dom96.github.com

2
star
51

adventofcode

Nim
2
star
52

nimrod-on-android

Attempt to run nimrod on the android platform
C
2
star
53

tinyrenderer.nim

C++
2
star
54

libclang

Nim
1
star
55

turingsim

Turing simulator written in Nim. Inspired by QUB's CSC2005.
Nim
1
star
56

qub-university-codesmash

http://shopkeep.github.io/qub-university-codesmash
Ruby
1
star
57

futurehack

It's a game thing.
C++
1
star
58

AELC

AEL(Awesome Esoteric Language) Interpreter
1
star
59

arduino

Messy repo with various Arduino experiments.
C++
1
star
60

oui

Parser for the official OUI file.
Nim
1
star
61

log2html

Tool for gathering information from HTTP server access logs.
1
star
62

CSC-Java

Java
1
star
63

corewlan

Nim
1
star
64

RPNCalc

A Reverse Polish Notation calculator made in various languages
Haskell
1
star
65

relnotesgen

Release notes generator
Nim
1
star
66

pyodide-worker-hello-world

Template to run Python via Pyodide on Cloudflare Workers
JavaScript
1
star