AsmBB forum software presentation.

JohnFound

Participant
Joined
Mar 20, 2017
Messages
72
Hi. I am developing the forum software AsmBB

It is fully written in assembly language and is trying to be as fast and lightweight as possible. It uses FastCGI for higher performance and SQLite for very robust storage and in the same time avoiding the external dependencies. Works on every x86 or x86-64 hosting (including shared) that supports FastCGI. Have no external dependencies and is very easy for installation.

While, my general programming skills are enough for creating the back-end code, the web design is far from perfect. Also, I am not sure I have enough experience about forum software design. For now I am trying to follow my common sense and the principles of minimalism in order to keep it not overbloated. But who knows, maybe some important features are missing.

So, if you like the project and its overall ideas, you can join in order to make the fastest forum software in the world. ;)

The project needs better visual design, different and beautiful skins, As long as everything is configurable by template and CSS files, no assembly language skills are needed. But of course, if someone want to learn by working on real life project - the project is open for code contributors as well. (And you will be surprised how easy assembly language programming is).

Some migrating tools from/to another forums databases are highly desirable.

The source repository of the project is here: https://asm32.info/fossil/repo/asmbb/index

The demo installation is here: https://board.asm32.info
 

doubt

Tazmanian
Joined
Feb 25, 2013
Messages
4,898
Fast as light, that's good.
That lots of yellow is not that good.
 

Hogarth

Aspirant
Joined
Mar 26, 2017
Messages
44
It seems like a pretty cool concept and I'm interested in seeing how it eventually turns out. I do have to agree with doubt though; that really is a bit too much yellow for my tastes.
 

Hogarth

Aspirant
Joined
Mar 26, 2017
Messages
44
Haha, that is completely understandable. Hopefully if you keep this project moving in a good, forward direction you'll attract the attention of someone with the abilities and desire to design you a nice theme.
I wish you the best and I'm sure I'll be checking in from time to time to see how everything is progressing.
 

Tatl

Developer
Joined
Apr 29, 2007
Messages
125
I love it. The tags are way better than traditional forum/category layout.

If I knew assembly I'd ask to join and work on it with you.
 

Digital Doctor

Tazmanian
Joined
May 16, 2012
Messages
4,682
Don't make a forum.
Make a Reddit clone.
They are very similar but Reddit is superior.
 

mysiteguy

Fanatic
Joined
Feb 20, 2007
Messages
3,619
I'm intrigued as to why you decided on assembly? I've been programming in assembly language since back in the 6502 days, everything from that to x86, embedded, Z80, etc. I'd have used C as the lowest level language for something like this.
 

JohnFound

Participant
Joined
Mar 20, 2017
Messages
72
I'm intrigued as to why you decided on assembly? I've been programming in assembly language since back in the 6502 days, everything from that to x86, embedded, Z80, etc. I'd have used C as the lowest level language for something like this.

Well, the answer is a good cause for flame war, but I will risk. ;) At first, I find assembly language much more readable than HLL languages and especially C-like languages with their weird syntax.

At second, all my tests show, that in real-life applications assembly language always gives at least 200% performance boost. The problem is not the quality of the compilers. It is because the humans write programs in assembly language very different than programs in HLL. Notice, that you can write HLL program as fast as an assembly language program, but you will end with very, very unreadable and hard for support code. In the same time, the assembly version will be pretty readable and easy for support.

The performance is especially important for server applications, because the program runs on hired hardware and you are paying for every second CPU time and every byte RAM. AsmBB for example can run on very cheap shared web hosting and still to serve hundreds of users simultaneously.
 

echo_off

Ponders things of unknowable validity
Joined
Mar 24, 2011
Messages
1,296
That's pretty cool. Definitely eeking out every last drop of performance!

Would there be any benefit from not using a database program, and instead performing operations directly on a data structure in memory so you can avoid the cost of inter-process communication with database server, and of course the interpreting of queries? I guess you could then serialise the data in some way and write it to a file for portability.

I say this because the main bottleneck with web apps is often times lots of costly database transactions and inter-process communication with the database server. Take away the cost of the database access, and software written in Node JS won't be hugely slower.
 

JohnFound

Participant
Joined
Mar 20, 2017
Messages
72
I say this because the main bottleneck with web apps is often times lots of costly database transactions and inter-process communication with the database server. Take away the cost of the database access, and software written in Node JS won't be hugely slower.

Well, of course, using database instead of simple files slower down the performance. But the problem is not in the inter-process communications. AsmBB uses SQLite, that is not DB server, but library. The big problem is to provide ACID transactions to the database. This is essential for applications where multiply users are allowed to write simultaneously. Using files, the application still need to provide ACID transactions, that will slow down the performance the same way the SQL database do, but will make the code much more complex and hard for maintaining.

Anyway, this overhead is not so big actually. You can see, that by using fast enough language (asm) the whole application works pretty fast, regardless of using SQL database for storage.
 

Karll

Adherent
Joined
Dec 9, 2011
Messages
452
That is really impressive. And really going against the prevailing tendency of ever more bloated software.

I too was surprised by your choice of SQLite, but it appears to be a more robust DB system than commonly thought. Very interesting.

I can see this already having some appeal to certain niches.
 

JohnFound

Participant
Joined
Mar 20, 2017
Messages
72
BTW: I just uploaded an update of AsmBB that supports user selectable skins (set it in the user profile). Also added a very lightweight theme for those who not like yellow/black design.
 

rafalp

Desu Ex
Joined
Feb 17, 2008
Messages
1,340
Anyway, this overhead is not so big actually. You can see, that by using fast enough language (asm) the whole application works pretty fast, regardless of using SQL database for storage.

But have you actually measured that with any substantial dataset? At what pace will speed drop as your dataset exceeds memory capacities? How will search scale when there's 100k posts? 1 milion? What about read states resolution? Running on multiple instances on separate machines?
 

JohnFound

Participant
Joined
Mar 20, 2017
Messages
72
But have you actually measured that with any substantial dataset? At what pace will speed drop as your dataset exceeds memory capacities? How will search scale when there's 100k posts? 1 milion? What about read states resolution? Running on multiple instances on separate machines?

The RAM memory on the server is 1GB and AsmBB uses approximately 2MB per running instance. The current database file is 50MB, so it is not entirely loaded in the RAM.

(It is shared hosting: 1GB RAM, one CPU core, 30 minutes CPU time per 24h; The maximum consumed time for now was 6 minutes during a shashdot effect event).

The biggest thread in the demo forum is this: https://board.asm32.info/test_thread/

It contains 15005 posts (751 pages), posted by a bot. In fact I cant measure any slowdown on processing this thread. The same is with the text search - it uses the FTS engine of SQLite that is pretty fast and will not slowdown on big databases.

With SQLite, the engine can not be executed on multiply machines, but can be installed on a separate server and will provide enough performance to power several web servers.

Of course the database also can be replaced with some client-server database, but I don't think someone needs such ultra high performance right now.
 

JohnFound

Participant
Joined
Mar 20, 2017
Messages
72
Little bit more about the hosting of the demo forum. It is the cheapest possible hosing I was able to find. The cost is approximately 2.5€ per month and it has the following parameters:

1GB RAM;
1CPU core;
30 minutes CPU time per 24h;
The speed of the CPU is unknown;
The HDDs seems to be SSD, but are not implicitly specified.

After publishing links to the demo on some social networks, there were several slashdot effect events. Based on the statistics, on this very hosting, the engine can provide normal work of the forum for approximately 12000 visitors per 24h or 180000 HTTP requests. The limiting factor here is the CPU time - 30 minutes per 24h.
 

Alex - A2Hosting

Neophyte
Joined
Apr 18, 2017
Messages
5
BTW: I just uploaded an update of AsmBB that supports user selectable skins (set it in the user profile). Also added a very lightweight theme for those who not like yellow/black design.

I would love to see this theme if you have any previews available? Maybe you could make the theme selection available to everyone?

Overall feels very fast!
 

JohnFound

Participant
Joined
Mar 20, 2017
Messages
72
The selected theme is stored in the user profile. I don't want to set cookies for the guests because of privacy concerns. If you don't want to register account because of the email confirmation, you can use one of the disposable emails: https://board.asm32.info/email-handling-and-registration-without-valid-email-58/
This way you will be able to test all the features of the engine accessible only for the registered users.

Also, here is a screenshot of the Light theme:
LightTheme2.png
 
Top